Syntax error in SQL Database
Ik ben begonnen met mysql, maar hij geeft een syntax error op line 1. deze error:
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 '' at line 1
Dit is de code:
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 '' at line 1
Dit is de code:
Code (php)
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
67
68
69
70
71
72
73
74
75
76
77
78
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
67
68
69
70
71
72
73
74
75
76
77
78
<?php
$id = $_GET["id"];
if ($id = "")
{
header("location: medewerkers_tonen.php");
}
$connect = @mysql_connect("GEHEIM","GEHEIM","GEHEIM")
or die("Kan geen verbinding met de server maken");
@mysql_select_db("GEHEIM",$connect)
or die("Kan de database niet vinden");
$query = "SELECT * FROM medewerkers WHERE id=$id";
$result = @mysql_query($query,$connect)
or die(mysql_error());
$id = mysql_result($result,0,"id");
$voornaam = mysql_result($result,0,"voornaam");
$achternaam = mysql_result($result,0,"achternaam");
$afdeling = mysql_result($result,0,"afdeling");
$toestelnummer = mysql_result($result,0,"toestelnummer");
mysql_close($connect);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="medewerker_aanpassen.php" method="post">
<input type="hidden" name="id" value="<?php echo $id ?>" />
<table>
<tr>
<th>Voornaam:</th>
<td><input type="text" name="voornaam" value="<?php echo $voornaam; ?>" /></td>
</tr>
<tr>
<th>Achternaam:</th>
<td><input type="text" name="achternaam" value="<?php echo $achternaam; ?>" /></td>
</tr>
<tr>
<th>Afdeling:</th>
<td><input type="text" name="afdeling" value="<?php echo $afdeling; ?>" /></td>
</tr>
<tr>
<th>Toestelnummer:</th>
<td><input type="text" name="toestelnummer" value="<?php echo $toestelnummer; ?>" /></td>
</tr>
<tr>
<th> </th>
<td>
<input type="submit" name="action" value="Aanpassen" />
<input type="submit" name="action" value="Verwijderen" onclick="return confirm('Weet u zeker dat u deze persoon wilt verijderen?')"
</td>
</tr>
</table>
</form>
</body>
</html>
$id = $_GET["id"];
if ($id = "")
{
header("location: medewerkers_tonen.php");
}
$connect = @mysql_connect("GEHEIM","GEHEIM","GEHEIM")
or die("Kan geen verbinding met de server maken");
@mysql_select_db("GEHEIM",$connect)
or die("Kan de database niet vinden");
$query = "SELECT * FROM medewerkers WHERE id=$id";
$result = @mysql_query($query,$connect)
or die(mysql_error());
$id = mysql_result($result,0,"id");
$voornaam = mysql_result($result,0,"voornaam");
$achternaam = mysql_result($result,0,"achternaam");
$afdeling = mysql_result($result,0,"afdeling");
$toestelnummer = mysql_result($result,0,"toestelnummer");
mysql_close($connect);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="medewerker_aanpassen.php" method="post">
<input type="hidden" name="id" value="<?php echo $id ?>" />
<table>
<tr>
<th>Voornaam:</th>
<td><input type="text" name="voornaam" value="<?php echo $voornaam; ?>" /></td>
</tr>
<tr>
<th>Achternaam:</th>
<td><input type="text" name="achternaam" value="<?php echo $achternaam; ?>" /></td>
</tr>
<tr>
<th>Afdeling:</th>
<td><input type="text" name="afdeling" value="<?php echo $afdeling; ?>" /></td>
</tr>
<tr>
<th>Toestelnummer:</th>
<td><input type="text" name="toestelnummer" value="<?php echo $toestelnummer; ?>" /></td>
</tr>
<tr>
<th> </th>
<td>
<input type="submit" name="action" value="Aanpassen" />
<input type="submit" name="action" value="Verwijderen" onclick="return confirm('Weet u zeker dat u deze persoon wilt verijderen?')"
</td>
</tr>
</table>
</form>
</body>
</html>
Gewijzigd op 18/10/2011 12:18:45 door Jerry php
Kijk eens goed naar regel 5.
Ja die lege ""
maar dat is toch gewoon goed?
En waarom staat er btw dan regel in die fout?
maar dat is toch gewoon goed?
En waarom staat er btw dan regel in die fout?
if ($id = "") => hier vul je $id met een lege string.
if ($id == "") => hier kijk je of ze hetzelfde zijn.
if ($id == "") => hier kijk je of ze hetzelfde zijn.
Verder worden VALUES, zoals $id tussen singlequotes, en de variabelen buiten quotes.
Dan wordt het dus:
Als je het nog beter wilt doen, gebruik je gewoon direct je $_GET-variabele, zodat je dit krijgt. Op die manier hoef je de waarde uit $_GET niet te kopiëren naar $id.
Maar wacht.... Is het nog niet helemaal af, want ik mis beveiliging tegen SQL-injection.
We gaan nog eventjes verder, zodat we dit krijgen:
Trouwens, waarom gebruik je mysql_result,() of je velden op te halen? Je kan ook prima mysql_fetch_assoc() gebruiken. Dan heb je alle velden in een array staan zoals: $item['toestelnummer']. En dit is veel sneller...
Dit wat jij nu doet werd nog toegepast in PHP 3, zo'n 12 jaar geleden ;-).
Dan wordt het dus:
Als je het nog beter wilt doen, gebruik je gewoon direct je $_GET-variabele, zodat je dit krijgt. Op die manier hoef je de waarde uit $_GET niet te kopiëren naar $id.
Maar wacht.... Is het nog niet helemaal af, want ik mis beveiliging tegen SQL-injection.
We gaan nog eventjes verder, zodat we dit krijgen:
Code (php)
1
$query = "SELECT * FROM medewerkers WHERE id='".mysql_real_escape_string($_GET['id'])."'";
Trouwens, waarom gebruik je mysql_result,() of je velden op te halen? Je kan ook prima mysql_fetch_assoc() gebruiken. Dan heb je alle velden in een array staan zoals: $item['toestelnummer']. En dit is veel sneller...
Dit wat jij nu doet werd nog toegepast in PHP 3, zo'n 12 jaar geleden ;-).




