2014-07-09 5 views
0

Je reçois l'erreur '1' à la ligne 1, je suis un peu perplexe avec celui-ci; Je suis un noob complet et essaye habituellement de corriger les choses sans demander de l'aideErreur de syntaxe MySQL: près de '1' à la ligne 1

Il entre correctement toutes les données dans le db, mais offre cette erreur.

Il y a quelques autres threads avec la même question, la solution à l'un était: "C'est la raison pour laquelle l'erreur est apparue: vous avez essayé d'appeler mysql_query avec le résultat de la dernière requête de mise à jour. String, juste '1'. "

$title = mysqli_real_escape_string($con, $_POST['title']); 
$firstname = mysqli_real_escape_string($con, $_POST['firstname']); 
$lastname = mysqli_real_escape_string($con, $_POST['lastname']); 
$jobtitle = mysqli_real_escape_string($con, $_POST['jobtitle']); 
$address = mysqli_real_escape_string($con, $_POST['address']); 
$address2 = mysqli_real_escape_string($con, $_POST['address2']); 
$address3 = mysqli_real_escape_string($con, $_POST['address3']); 
$postcode = mysqli_real_escape_string($con, $_POST['postcode']); 
$telephone = mysqli_real_escape_string($con, $_POST['telephone']); 
$email = mysqli_real_escape_string($con, $_POST['email']); 

(je sais que je devrais vraiment faire une déclaration préparée)

$sql = mysqli_query($con, "UPDATE users SET title='$title', firstname='$firstname', lastname='$lastname', jobtitle='$jobtitle', address='$address', address2='$address2', address3='$address3', postcode='$postcode', telephone='$telephone', email='$email' WHERE username='$user'"); 

if (!mysqli_query($con,$sql)) { 
$result_array = mysql_fetch_assoc($qStuff); 
die('Error: ' . mysqli_error($con)); 
} 
+1

Vous exécutez la requête et mettre le résultat dans $ sql, puis vous exécutez ce résultat – Kickstart

+2

Ne pas mélanger les appels à 'mysqli _ *()' avec des appels à 'mysql _ *()' - les deux ne sont pas compatibles. 'UPDATE' ne retourne pas un ensemble de résultats. Enfin, vous utilisez $ qStuff mais il n'est initialisé nulle part. –

+0

Il est bon que vous vous souveniez d'échapper de manière appropriée vos données d'entrée, mais une solution encore meilleure et plus propre serait d'utiliser des déclarations préparées. Hélas, je ne suis pas assez familier avec MySQLi pour dire exactement comment cela devrait être fait, mais cela devrait suffire à vous aider dans votre recherche. – glglgl

Répondre

1

la ligne suivante stocke la valeur « 1 » dans $ sql lorsque l'insertion est réussie et 0 lors d'un échec.

$sql = mysqli_query($con, "UPDATE users SET title='$title', firstname='$firstname', lastname='$lastname', jobtitle='$jobtitle', address='$address', address2='$address2', address3='$address3', postcode='$postcode', telephone='$telephone', email='$email' WHERE username='$user'"); 

Et vous essayez d'exécuter cette

if (!mysqli_query($con,$sql)) 

ici, la valeur de $ sql est "1" qui n'est pas une requête valide. Cela entraîne une erreur de syntaxe. probablement si vous essayez d'atteindre cet objectif:

$sql = "UPDATE users SET title='$title', firstname='$firstname', lastname='$lastname', jobtitle='$jobtitle', address='$address', address2='$address2', address3='$address3', postcode='$postcode', telephone='$telephone', email='$email' WHERE username='$user'"; 
if(mysqli_query($con,$sql)){ 
    //do something if the operation is successful 
} 
+0

Vous pouvez récupérer des valeurs uniquement pour les opérations mysqli qui récupèrent des résultats comme 'SELECT'. – Aravind

Questions connexes