Vervelende 'Query error'
Ik zit met een hele vervelende error waar ik echt niet uit kom. Het gaat om informatie die een database in moet. Het gaat om de volgende error:
Query 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 'to,subject,message)VALUES ('test','2011-02-06 10:17:34','dfg','dfgdfg','message')' at line 1
<form action="" method="post" enctype="multipart/form-data">
<table>
<tr>
<td><input type="hidden" size="40" name="gebruikersnaam" value="" /></td>
<td><input type="hidden" value="" name="date" /></td>
</tr>
<tr>
<td><b>To</b></td>
<td><input type="text" value="" name="to" /></td>
</tr>
<tr>
<td><strong>Subject</strong></td>
<td><input type="text" size="40" name="subject" /></td>
</tr>
<tr>
<td><strong>Message</strong></td>
<td><input type="text" size="40" name="message" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="add" value="Add now" /></td>
</tr>
</table>
</form>
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
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
<?php
$gebruikersnaam =$_POST["gebruikersnaam"];
$date =$_POST["date"];
$to =$_POST["to"];
$subject =$_POST["subject"];
$message =$_POST["message"];
if($_POST['add']){
if(empty($_POST['to'])){
echo "<b>Please enter a title</b>";
$terug = true;
}
elseif(empty($_POST['subject'])){
echo "<b>Please give up an location</b>";
$terug = true;
}
elseif(empty($_POST['message'])){
echo "<b>Please write an entry</b>";
$terug = true;
}
if($terug){
echo "";
}
else {
echo'<font color="green">Thank you for your entry. We have add it <b>succesfully</b> to '.$arr['title'].'</font>';
$result2 = mysql_query("INSERT INTO message (gebruikersnaam,date,to,subject,message)VALUES ('$gebruikersnaam','$date','$to','$subject','message')");
}
if (!$result2)
{
die('Query error: ' . mysql_error());
}
mysql_close($con);
}
?>
$gebruikersnaam =$_POST["gebruikersnaam"];
$date =$_POST["date"];
$to =$_POST["to"];
$subject =$_POST["subject"];
$message =$_POST["message"];
if($_POST['add']){
if(empty($_POST['to'])){
echo "<b>Please enter a title</b>";
$terug = true;
}
elseif(empty($_POST['subject'])){
echo "<b>Please give up an location</b>";
$terug = true;
}
elseif(empty($_POST['message'])){
echo "<b>Please write an entry</b>";
$terug = true;
}
if($terug){
echo "";
}
else {
echo'<font color="green">Thank you for your entry. We have add it <b>succesfully</b> to '.$arr['title'].'</font>';
$result2 = mysql_query("INSERT INTO message (gebruikersnaam,date,to,subject,message)VALUES ('$gebruikersnaam','$date','$to','$subject','message')");
}
if (!$result2)
{
die('Query error: ' . mysql_error());
}
mysql_close($con);
}
?>
Dit zijn de gegevens die in de database horen te komen ->
CREATE TABLE IF NOT EXISTS `message` (
`id` int(11) NOT NULL auto_increment,
`gebruikersnaam` text collate latin1_general_ci,
`date` datetime default NULL,
`to` varchar(200) collate latin1_general_ci NOT NULL,
`subject` varchar(250) collate latin1_general_ci default NULL,
`message` varchar(250) collate latin1_general_ci default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
Alvast hartelijk dank!
plaats jij je code even tussen de [code][/code]-tags?
Verder maak jij ook onnutige $vars aan.
En die() is niet te gebruiken om je errors af te handelen.
Gewijzigd op 06/02/2011 10:49:40 door Jasper DS
je moet de vars buiten de quotes halen
Allemaal hartelijk dank voor het mee denken. Het probleem si echter nog niet opgelost. In andere gevallen werkt het wel. Daarom snap ik niet dat het nu ineens niet werkt. Waar moet ik de fout zoeken denken jullie? In de database of in the php?
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html
date is in feite wel een gereserveerd woord maar wordt binnen mysql wel toegestaan
Oh en het gebruik van backticks ` is uiteraard uitdenboze.
Hartstikke bedankt Noppes Homeland! Het werkt inmiddels gewoon weer!