Bij de onderstaande PHP code heb ik geen enkel probleem met het invoegen van 1 rij in de database (MySQL), maar zodra ik er meerdere achter elkaar wil invoegen krijg ik een syntax error. Er zit dus waarschijnlijk ergens een probleem bij het invoegen van meerdere rijen, dus niet bij het aanroepen van de database of iets dergelijks (waar ik zelf eerst dacht dat het probleem zat).
Ik heb de essentiële delen van de PHP Code overgenomen en wat test variabelen opgenomen (die anders wat nuttigere informatie bevat
), hij geeft op deze manier de zelfde foutmelding (uiteraard heb ik mijn wachtwoord enz. met *** vervangen).
Het gaat om de volgende PHP code:
En dat geeft dan de volgende foutmelding:
Om te kijken wat er nu precies naar de MySQL database wordt gestuurd heb ik het stukje dat de database aanspreekt aangepast.:
ik krijg dan de volgende uitvoer:
Ook als ik via \n het op een nieuwe regel laat beginnen dan krijg ik de zelfde foutmelding
Ik heb gezocht hier op het forum, met google en in de handleiding van MySQL en PHP en kan geen oplossing vinden. Het zal denk ik wel iets kleins zijn, maar ik zie het niet
het probleem kort samengevat
- Met het script kan ik 1 rij foutloos invoegen
- zodra ik meerder rijen wil invoeren krijg ik vanaf de tweede rij een foutmelding
Ik heb de essentiële delen van de PHP Code overgenomen en wat test variabelen opgenomen (die anders wat nuttigere informatie bevat
Het gaat om de volgende PHP 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
| <?php $url[0] = "test1"; $url[1] = "test2"; $url[2] = "test3"; $omsch[0] = "test4"; $omsch[1] = "test5"; $omsch[2] = "test6"; function data() { global $url; global $omsch; $user = "***"; $password = "*****"; $host = "freeserverhost.net"; $dbnaam = "*****"; $db=mysql_connect($host, $user, $password) or die (mysql_error()); mysql_select_db($dbnaam, $db) or die (mysql_error()); for ($teller = 0;$url[$teller];$teller++) { $datum = "2004-10-10 11:55:55"; $query .= "INSERT INTO test (url, omsch, datum) "; $query .= "VALUES ('"; $query .= $url[$teller] . "', '"; $query .= $omsch[$teller] . "', '"; $query .= $datum . "');\n"; $result = mysql_query($query) or die ("FOUT: " . mysql_error()); } } data(); ?> |
En dat geeft dan de volgende foutmelding:
code:
1
2
3
| FOUT: 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 '; INSERT INTO test (url, omsch, datum) VALUES ('test2', 'test5' |
Om te kijken wat er nu precies naar de MySQL database wordt gestuurd heb ik het stukje dat de database aanspreekt aangepast.:
PHP:
1
2
3
4
5
6
7
8
9
10
11
| for ($teller = 0;$url[$teller];$teller++) { $datum = "2004-10-10 11:55:55"; $query .= "INSERT INTO test (url, omsch, datum) "; $query .= "VALUES ('"; $query .= $url[$teller] . "', '"; $query .= $omsch[$teller] . "', '"; $query .= $datum . "');"; //$result = mysql_query($query) or die ("FOUT: " . mysql_error()); echo ("$query"); } |
ik krijg dan de volgende uitvoer:
code:
1
2
3
4
5
6
7
| INSERT INTO test (url, omsch, datum) VALUES ('test1', 'test4', '2004-10-10 11:55:55');INSERT INTO test (url, omsch, datum) VALUES ('test1', 'test4', '2004-10-10 11:55:55');INSERT INTO test (url, omsch, datum) VALUES ('test2', 'test5', '2004-10-10 11:55:55');INSERT INTO test (url, omsch, datum) VALUES ('test1', 'test4', '2004-10-10 11:55:55');INSERT INTO test (url, omsch, datum) VALUES ('test2', 'test5', '2004-10-10 11:55:55');INSERT INTO test (url, omsch, datum) VALUES ('test3', 'test6', '2004-10-10 11:55:55'); |
Ook als ik via \n het op een nieuwe regel laat beginnen dan krijg ik de zelfde foutmelding
Ik heb gezocht hier op het forum, met google en in de handleiding van MySQL en PHP en kan geen oplossing vinden. Het zal denk ik wel iets kleins zijn, maar ik zie het niet
het probleem kort samengevat
- Met het script kan ik 1 rij foutloos invoegen
- zodra ik meerder rijen wil invoeren krijg ik vanaf de tweede rij een foutmelding