You have an error in your SQL syntax

Status
Niet open voor verdere reacties.

webmasterbob

Gebruiker
Lid geworden
21 feb 2011
Berichten
20
Hi all.

Ben voor iemand bezig met een website.
Heb nu een formuliertje (mn zoveelste) maar op één of andere duistere rede geeft hij rond het in-het-database-zetten een 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 'update (onderwerp,naam,bericht,datum) values ('onderwerptext','naamgebruiker','testbericht','datum') at line 1

mijn code:

PHP:
<? include ("safe.php");?>
<? include ("htmltop.php");?>

<?php 

$hostname = "localhost"; // usually is localhost, but if not sure, check with your hosting company, if you are with webune leave as localhost 
$db_user = "grapje"; // change to your database password 
$db_password = "grapje"; // change to your database password 
$database = "grapje"; // provide your database name 

$db = mysql_connect($hostname, $db_user, $db_password); 
mysql_select_db($database,$db); 
?> 

<?php 

if($_POST['Submit']) {

	$sql2 = "SELECT * FROM gebruikers WHERE id='".$_SESSION['user_id']."'";
	$query2 = mysql_query($sql2);
	$rij2 = mysql_fetch_object($query2);
	$naam = htmlspecialchars($rij2->naam); 

	$onderwerp = $_POST['onderwerp'];
	$bericht = $_POST['bericht'];
	$datum = date("d-m-Y - H:i");

	$sql = "INSERT INTO tabelnaam (onderwerp,naam,bericht,datum) values ('$onderwerp','$naam','$bericht','$datum')";
	
	if($result = mysql_query($sql ,$db)) {
	echo "Gelukt";
	} else {
	echo "".mysql_error();
	}
	
} else {

?> 
<h1>Bericht toevoegen</h1><br> 
<form method="post" action=""> 
      <?	  
$sql2 = "SELECT * FROM gebruikers WHERE id='".$_SESSION['user_id']."'";
$query2 = mysql_query($sql2);
$rij2 = mysql_fetch_object($query2);
$naam2 = htmlspecialchars($rij2->naam); 
      ?>

Melder (admin):	  <? echo "$naam2"; ?><br><br>
	  
<br> <br> 
Onderwerp: <br> 
<input type="text" name="onderwerp"> <br> <br> 

Bericht: <br> 
<textarea name="bericht" cols='70' rows='10'></textarea><br><br>

<br>
<input type="submit" name="Submit" value=" Versturen! "> 
</form> 
<?php 
} 
?>  <br>

<? include ("htmlbottom.php");?>

Ik heb deze fout eerder gehad maar heb geen idee meer hoe ik dit toen heb opgelost :S

Alvast bedankt!

Greetzzz
 
Update is de naam van de tabel... Er is dus geen update actie maar een insert into. Dan doe ik het toch goed?
 
Nee hij heet 'update' maar in de php code heb ik hem even 'tabelnaam' genoemd voor de duidelijkheid.
 
UPDATE is gereserveerd SQL keyword. je moet de naam dan escapen als je je tabel toch zo wil noemen. Voor de leesbaarheid is het in ieder geval niet handig.
 
En wat is escapen?
Als ik het goed begrijp moet ik de tabelnaam veranderen?
Ik zal het vanmiddag proberen...
 
Door jouw query is MySQL in de war. Je wilt een insert doen op een tabel die update heet. Hij herkent update niet als een tabel maar als een deel van de query wat hij moet uitvoeren. Hierbij gaat hij er dus vanuit dat je wilt gaan updaten en niet wilt gaan inserten.

Ik zou zeggen pas zo snel mogelijk de naam van je database aan!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan