Fout in query-syntax
You have an error in your SQL syntax near 'wel','wel','wel','wel','gesubsidieerde arbeid','wel','wel','wel','intake','begel' at line 1INSERT INTO enquete(ip, datum, vraag1, vraag2, vraag3, vraag4, vraag5,vraag6, vraag7, vraag8, vraag9, vraag10, vraag11, vraag12,vraag13, vraag14, vraag15, vraag16, vraag17, vraag18, vraag19,vraag20, vraag21, vraag22, vraag23, vraag24, vraag25, vraag26,vraag27, vraag28, vraag29, vraag30, vraag31) VALUES ('127.0.0.1','16:06:2007 12:30:54','man','27-35','WW','Lager Onderwijs','december 2006','niet','wel','wel','wel','wel','wel','wel','wel','wel','wel','wel','wel','wel','wel,'wel','wel','wel','wel','gesubsidieerde arbeid','wel','wel','wel','intake','begeleiding','wel','1')
Dit is de code:
$sql="INSERT INTO enquete";
$sql.="(ip, datum, vraag1, vraag2, vraag3, vraag4, vraag5,";
$sql.="vraag6, vraag7, vraag8, vraag9, vraag10, vraag11, vraag12,";
$sql.="vraag13, vraag14, vraag15, vraag16, vraag17, vraag18, vraag19,";
$sql.="vraag20, vraag21, vraag22, vraag23, vraag24, vraag25, vraag26,";
$sql.="vraag27, vraag28, vraag29, vraag30, vraag31)";
$sql.=" VALUES ";
$sql.="('$ip','$datum','$vraag1','$vraag2','$vraag3','$vraag4','$vraag5',";
$sql.="'$vraag6','$vraag7','$vraag8','$vraag9','$vraag10','$vraag11','$vraag12',";
$sql.="'$vraag13','$vraag14','$vraag15','$vraag16','$vraag17','$vraag18','$vraag19,";
$sql.="'$vraag20','$vraag21','$vraag22','$vraag23','$vraag24','$vraag25','$vraag26',";
$sql.="'$vraag27','$vraag28','$vraag29','$vraag30','$vraag31')";
$connection=mysql_connect("localhost","root","");
$database=mysql_select_db("enquete", $connection);
mysql_query($sql);
echo mysql_error();
echo $sql;
Verder zijn de datatypes niet goed, dat gaat ook nog een berg problemen opleveren. Zie de handleiding.
DATE of DATETIME voor een datum en 'wel' zal waarschijnlijk als een boolean moeten worden opgeslagen en dus gewoon TRUE of FALSE gebruiken.
Ik wil best normaliseren maar zou niet weten hoe ik dat in dit geval moet doen.Voor datum heb ik al DATETIME als datatype, voor id INT en de rest VARCHAR. Maat idd, ik ben geen specialist in databases.
Het enige wat ik beoog te doen, als dit werkt, is kijken hoeveel x er bijvoorbeeld wel op een bepaalde vraag is geantwoord. Meer niet.
Groet,
Frank
'$vraag'
Noteer de queries voortaan wel netter, dan is de fout zo gevonden:
'wel',
'wel,
'wel',
bij de 2e wel ontbreekt een quote.
Nogmaals, het lijkt mij een waarde die als boolean moet worden opgeslagen (wel/niet), dan krijg je gewoon een TRUE of FALSE zonder quotes. Dan heb je dit probleem ook niet meer.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$sql="INSERT INTO enquete";
$sql.="(ip, datum, vraag1)";
$sql.=" VALUES ";
$sql.="('$ip','$datum','$vraag1')";
// is hetzelfde als
$sql="
INSERT INTO
enquete(
ip,
datum,
vraag1
)
VALUES(
'$ip',
'$datum',
'$vraag1'
)
";
?>
$sql="INSERT INTO enquete";
$sql.="(ip, datum, vraag1)";
$sql.=" VALUES ";
$sql.="('$ip','$datum','$vraag1')";
// is hetzelfde als
$sql="
INSERT INTO
enquete(
ip,
datum,
vraag1
)
VALUES(
'$ip',
'$datum',
'$vraag1'
)
";
?>
Nu open en sluit je de string slechts 1x en niet tientallen keren. De query wordt zo een stuk beter leesbaar en is dus eenvoudiger te debuggen.
prettig weekend
Frank