2010-11-06 6 views
0
$query = "INSERT INTO event (eventDesc) ". 
      "VALUES ('".$eventDesc."') WHERE event = 'Testing'"; 

Y at-il un problème avec cette instruction?Erreur d'insertion SQL

Je reçois une erreur en disant:

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel correspondant à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'WHERE event =' Testing '' à la ligne 2

Répondre

3

Vous voulez utiliser une instruction UPDATE pour mettre à jour une valeur existante:

$query = sprintf("UPDATE EVENT 
        SET eventDesc = '%s' 
        WHERE event = 'Testing'", 
        mysql_real_escape_string($eventDesc)); 

C'est plus sûr que votre requête - pas risk of SQL injection attack.

+0

+1: avertissement d'injection SQL –

1

Il n'existe pas de clause WHERE dans une requête INSERT.

+0

Il y a si les valeurs sont fournies en utilisant SELECT - IE: 'INSERT INTO EVENT SELECT col FROM OTHER_TABLE OERE ...' –

+1

Ce n'est pas une clause WHERE sur la requête INSERT, c'est une clause WHERE dans la requête SELECT . –

+0

Je pense que vous (et quiconque a voté pour votre commentaire) devez regarder de plus près mon exemple. –