Ik krijg deze fout zodra ik in een formuliertje iets wil updaten:
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 'WHERE id='88'' at line 10
weet iemand wat dit betekend?
- fout in db
-
17-05-2006, 17:27 #1Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 18 Jaar
fout in db
-
In de schijnwerper
[BELANGRIJK] Festinger Vault - Download 25.000 WordPress thema's en pluginsPromotieKoptelefoonwebsite met inkomsten te koop (affiliate)Website te koopGoedkope 10 Gbps Virtual Private Server (VPS) in Nederland (Met PURE NVMe opslag!)HostingHulp bij SEO/GoogleAds (NL/BE/DE). Economy.nl Google Premier Partner.Freelance / Werk -
17-05-2006, 17:28 #2
- Berichten
- 1.331
- Lid sinds
- 18 Jaar
Stuur lijn 10 en de omliggende regels eens.. Waarschijnlijk ergens een ' of " teveel/te weinig of iets dergelijks.
Het zit tenminste in je SQL query ;)
-
17-05-2006, 17:36 #3Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 18 Jaar
PHP Code:<?php include ("config.php"); ?>
<?php
$query="SELECT * FROM klanten WHERE id='". $_GET['id'] ."'";
$result = mysql_query($query) or die ("Fout: " .mysql_error());
while (list($id, $nummer, $naam, $adres, $postcode, $plaats, $telefoonnummer, $login, $pass) =
mysql_fetch_row($result)){
echo"<form name='updaten' method='post' action='wijzigen_klanten.php?id=".$_GET['id']."'>
<table width=50% border=1 cellpadding=0 cellspacing=0 bordercolor=#BBBBBB bgcolor=#CCCCCC>
<tr>
<td height=24></td>
<td></td>
</tr>
<tr>
<td width=10%>nummer</td>
<td width=25%><input name=nummer id=nummer maxlength=40 type=text size=40 value=$nummer></td>
</tr>
<tr>
<td width=10%>naam</td>
<td width=25%><input name=naam id=naam maxlength=40 type=text size=40 value=$naam></td>
</tr>
<tr>
<td width=10% height=22>adres</td>
<td width=25%><input name=adres id=adres maxlength=40 type=text size=40 value=$adres></td>
</tr>
<tr>
<td width=10%>postcode</td>
<td width=25%><input name=postcode id=postcode maxlength=40 type=text size=40 value=$postcode></td>
</tr>
<tr>
<td width=10%>plaats</td>
<td width=25%><input name=plaats id=plaats maxlength=40 type=text size=40 value=$plaats></td>
</tr>
<tr>
<td width=10%>telefoonnummer </td>
<td width=25%><input name=telefoonnummer id=telefoonnummer maxlength=15 type=text size=40 value=$telefoonnummer></td>
</tr>
<tr>
<td width=10% height=22>login</td>
<td width=25% height=22><input name=login id=login maxlength=8 type=text size=40 value=$login></td>
</tr>
<tr>
<td width=10%>wachtwoord</td>
<td width=25%><input name=pass id=pass maxlength=8 type=text size=40 value=$pass></td>
</tr>
<tr>
<td width=10% height=24> </td>
<td width=25%> </td>
</tr>
<tr>
<td height=24> <input name='updaten' type='submit' id='updaten' value='Updaten'>
<input name=reset type=reset value=Wissen /> </td>
<td> </td>
</tr>
</table>
</form>";
}
if($updaten) {
if($_POST['nummer'] ==""){
echo 'Je hebt geen klantnummer ingevult!';
}
$query="UPDATE klanten set
nummer = '". $_POST["nummer"] ."',
naam = '". $_POST["naam"] ."',
adres = '". $_POST["adres"] ."',
postcode = '". $_POST["postcode"] ."',
plaats = '". $_POST["plaats"] ."',
telefoonnummer = '". $_POST["telefoonnummer"] ."',
login = '". $_POST["login"] ."',
pass = '". $_POST["pass"] ."',
WHERE id='". $_GET["id"] ."'";
$result = mysql_query($query) or die (mysql_error());
echo ("De opdracht is uitgevoerd.<br>");
if ($result){
echo ("Record nummer " .$_GET['id'] . " is bijgewerkt<br>");
}
}
?>
<?php echo "<br><br><a href=index_klanten.php>Ga terug naar de lijst</a>" ?>
-
17-05-2006, 17:37 #4
- Berichten
- 292
- Lid sinds
- 18 Jaar
Haal de , achter pass = '". $_POST["pass"] ."', eens weg.
-
17-05-2006, 17:45 #5Ondernemer
- Berichten
- 173
- Lid sinds
- 18 Jaar
de comma is idd het probleem, ik hoop voor je dat je het onderdeel beveiliging nog moet doen, want in dat opzicht is het script maar een beetje onveilig :-)....
-
17-05-2006, 17:52 #6Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 18 Jaar
Jah :d, bedankt..
hoe bedoel je het onderdeel beveiliging?? Er komt een inlogsysteempje onder te hangen die je nu niet ziet.. dat je er alleen bij kan als je ingelogd bent..
-
17-05-2006, 18:12 #7
- Berichten
- 178
- Lid sinds
- 18 Jaar
Je laad nu direct $_GET['id'] in de query in.
Als ik in de url achter ?id= een code zet zoals 4'; DELETE * FROM klanten; dan kan een hele tabel verwijderd worden.
Vertrouw userinput nooit...
Wellicht heb je hier iets aan: http://www.phpfreakz.nl/artikelen.php?aid=74 en http://www.phpfreakz.nl/artikelen.php?aid=106
-
17-05-2006, 18:26 #8Boyd Internet Solutions
- Berichten
- 92
- Lid sinds
- 18 Jaar
njah, users zijn bij mij wel te vertrouwen;)
-
17-05-2006, 19:04 #9
- Berichten
- 292
- Lid sinds
- 18 Jaar
Daar mag je eigenlijk nooit van uitgaan... Bovendien is het gewoon een goede gewoonte.
Ook als je de code later zou gaan gebruiken op een plek waar users níet te vertrouwen zijn is het handig als het goed in elkaar zit.
-
17-05-2006, 19:40 #10
- Berichten
- 1.470
- Lid sinds
- 18 Jaar
mysql_fetch_row nog nooit van gehoord tbh
-
17-05-2006, 20:26 #11
- Berichten
- 625
- Lid sinds
- 18 Jaar
Origineel gepost door Ivo van Zonmysql_fetch_row nog nooit van gehoord tbh
-
18-05-2006, 09:45 #12
- Berichten
- 1.470
- Lid sinds
- 18 Jaar
Waarom zou ik me daar in verdiepen?, ik gebruik mysql_fetch_array, of mysql_fetch_assoc, en assoc is van deze het snelste :)
-
18-05-2006, 13:51 #13
- Berichten
- 1.331
- Lid sinds
- 18 Jaar
Een tipje, gebruik indien mogelijk superglobals:
if($updaten) {
Moet worden:
if($_POST['updaten']) {
Dacht ik..
Zeg het maar als ik fout zit ;)
---------------------------------
@ Ivo, neem gewoon de moeite te kijken wat het inhoud.
Je gaat er toch niet op achteruit.. Maarja, ik ga me niet
in een discussie tussen jou en Dirk mengen.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic