Error in SQL syntax

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fol Effe

Fol Effe

24/02/2014 13:02:38
Quote Anchor link
Hallo allemaal,

als ik in een php script iets wil wijzigen en op opslaan klik dan krijg ik deze foutmelding:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '='Dr.' , Voornaam='Rudolf' , Tussenv='van' , Voorletters='R.', ' at line 3

Wie weet wat dit betekent, ik heb al het een en ander gezocht maar ik kom er niet uit.
Wie kan mij helpen?
 
PHP hulp

PHP hulp

18/12/2024 17:14:54
 
Michael -

Michael -

24/02/2014 13:05:33
Quote Anchor link
Mogelijk een komma in een variabele die je wilt opslaan, of de komma's in je query verkeerd staan?
Laats eens het stukje code zien waar de genoemde query in staat.
 
Fol Effe

Fol Effe

24/02/2014 13:20:43
Quote Anchor link
Hoe kan ik hier makkelijk een stukje code laten zien?
Gewoon kopiëren en plakken.
 
Ivo P

Ivo P

24/02/2014 13:39:41
Quote Anchor link
ik vermoed dat het zit in de naam van de kolom waarin "Dr." staat opgeslagen.

Zou een gereserveerd woord kunnen zijn. http://dev.mysql.com/doc/refman/5.6/en/reserved-words.html

maar best zou je de hele query bij de foutmelding moeten printen en niet alleen de foutmelding
 
Dos Moonen

Dos Moonen

24/02/2014 13:41:28
Quote Anchor link
Wel tussen code tags plaatsen <code>hier je code</code> alleen dan met [ en ] op de plaats van de < en >, respectievelijk.

PS. Ik hoop dat de volledige SQL query deel van je code is?
Gewijzigd op 24/02/2014 13:42:34 door Dos Moonen
 
Fol Effe

Fol Effe

24/02/2014 14:18:20
Quote Anchor link
Als ik iets heb gewijzigd en dan op opslaan heb geklikt, kom ik op dit script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
session_start();
ini_set('display_errors', 1);
//error_reporting(E_ALL | E_STRICT);
include ("Clef.php");
include 'test/passcode.php';

$in = $_SESSION['sleutel'];
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
//kijken of het formulier gepost is                  

1e open {
    
        $Titel = $_POST['TI'];
    $Voornaam = $_POST['VN'];
    $Tussenv= $_POST['TV'];
        $Voorletters = $_POST['AH'];
    $Achternaam = $_POST['AN'];
    $Geslacht = $_POST['GS'];
    $Gebdatum = $_POST['GD'];
    $Overldatum = $_POST['OD'];
    $Opmerking =$_POST['OPM'];


//-------------------------------------------------------

   mysql_query("UPDATE komponisten
        
        Titel='$Titel' ,
        Voornaam='$Voornaam' ,
                Tussenv='$Tussenv' ,
        Voorletters='$Voorletters',
                Achternaam='$Achternaam' ,
        Geslacht='$Geslacht' ,
                Gebortedatum='$Gebdatum' ,    
                Overlijdingsdatum='$Overldatum',
                Opmerking='$Opmerking'
                WHERE ID='$in'"
) or die("Oeps " . mysql_error());
//-----------------------------------------------------------
//-------------------------------------------------------

    $Inlognaam = $Logincode;
    $Functie = "DOCENT";

    $New = $_SESSION['NewLog'];
    $New = trim($New);
    if ($New == "New")
    {

        $_SESSION["NewLog"] = "";
        mysql_query("INSERT INTO Gebruikers (Inlognaam,Password,Functie) VALUES ('" . $Inlognaam . "',                        

    AES_ENCRYPT('$Password','$passcode'), '"
. $Functie . "')") or die(mysql_error());

    }
else
    {
        if(!empty($Password))
        {

        mysql_query("UPDATE Gebruikers SET Inlognaam='$Inlognaam',      
        Password=AES_ENCRYPT('$Password','$passcode') , Functie=' $Functie' WHERE Inlognaam='$Inlognaam'"
)    
        or  die("Oeps " . mysql_error());
        }
    }
}

?>

<script type="text/javascript">
    top.location.href = 'testzoekkomponist.php';
</script>


Het is de eerste keer dat ik hier code neerzet, ik hoop dat het goed wordt weergeven.
 
Ivo P

Ivo P

24/02/2014 14:19:24
Quote Anchor link
je mist het woordje SET (regel 28)

op regel 58 zou ik de spatie voor $functie verwijderen.

Verder: http://wiki.pfz.nl/sqlinjectie
Gewijzigd op 24/02/2014 14:28:29 door Ivo P
 
Erwin H

Erwin H

24/02/2014 14:21:38
Quote Anchor link
@Ivo hoe kan een waarde nu een probleem geven met gereserveerde woorden?

Anyway, @TS, het probleem is dat je UDPATE statement gewoon niet klopt. Het SET keyword ontbreekt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 mysql_query("UPDATE komponisten
        
        Titel='$Titel' ,
        Voornaam='$Voornaam' ,
                Tussenv='$Tussenv' ,
        Voorletters='$Voorletters',
                Achternaam='$Achternaam' ,
        Geslacht='$Geslacht' ,
                Gebortedatum='$Gebdatum' ,    
                Overlijdingsdatum='$Overldatum',
                Opmerking='$Opmerking'
                WHERE ID='$in'"
)
?>

Moet zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
 mysql_query("UPDATE komponisten
              SET
                Titel='$Titel' ,
                Voornaam='$Voornaam' ,
                Tussenv='$Tussenv' ,
                Voorletters='$Voorletters',
                Achternaam='$Achternaam' ,
                Geslacht='$Geslacht' ,
                Gebortedatum='$Gebdatum' ,    
                Overlijdingsdatum='$Overldatum',
                Opmerking='$Opmerking'
              WHERE ID='$in'"
)
?>
 
Fol Effe

Fol Effe

24/02/2014 14:27:26
Quote Anchor link
Het is gelukt :)

Super bedankt allemaal!!!!
 
Ivo P

Ivo P

24/02/2014 14:31:55
Quote Anchor link
mijn edit is wat naarboven terecht gekomen/:

http://wiki.pfz.nl/sqlinjectie

dat voorkomt problemen met namen waarin een ' zit. Bijvoorbeeld 's-Hertogenbosch
of bewuste pogingen tot hackeen.

---
De melding is trouwens "near ='Dr.'"

Dus als de kolomnaam bijvoorbeeld SUM is, dan zou mysql best eens bij de "=" kunnen gaan hikken over het niet aantreffen van een ( na de functienaam SUM
Gewijzigd op 24/02/2014 14:35:21 door Ivo P
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.