2013-08-26 3 views
0

J'ai cette requête et ne peut pas comprendre ce qui est incorrect:erreur de requête Mysql avec la syntaxe

mysql_query ("UPDATE 'users' SET 'profile'='".$file_path."'WHERE 'id'=".(int)$user_id)or die ("Error in query: $query. ".mysql_error()); 

Voici une erreur: Erreur dans la requête:. Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de '' utilisateurs 'SET' profile '=' images/profiles/7fe0e816b0.jpg'WHERE 'id' = 72 'à la ligne 1

Répondre

2

Essayez avec backticks au lieu de single-quotes comme

mysql_query ("UPDATE `users` 
       SET `profile`='".$file_path."' 
       WHERE `id`=".(int)$user_id) 
    or die ("Error in query: $query. ".mysql_error()); 

et essayez d'éviter mysql_* déclarations en raison de toute l'étendue ext/mysql PHP, qui fournit toutes les fonctions nommées avec le préfixe mysql_*, est officiellement OBSOLETE PHP v5.5.0 et sera enlevés à l'avenir.

Il y a deux autres MySQL extensions que vous pouvez mieux utiliser: MySQLi et PDO_MySQL, ou l'autre qui peuvent être utilisés au lieu de ext/mysql.

1

mettez l'espace entre 'et O WH. Est-citation inutile vos champs parce que leur ont pas d'espace dans les nommer

0

Essayez d'utiliser backquotes au lieu de guillemets avant autour des noms de nom de table et de colonne:

UPDATE `users` SET `profile`='".$file_path."' WHERE `id`=".(int)$user_id 
1

Essayez

mysql_query ("UPDATE users SET profile='".$file_path."' WHERE id=".(int)$user_id)or die ("Error in query: $query. ".mysql_error()); 
+0

Cette réponse serait encore plus utile si vous pouviez expliquer comment vous avez changé la requête originale et pourquoi. – ASGM

2

Les citations sont censés être des backticks. Changer la requête en ceci:

mysql_query("UPDATE `users` SET `profile` = '".$file_path."' WHERE `id` = ".(int)$user_id); 

Note Aucun lien:
Ne pas utiliser mysql_* dépréciés fonctions, ils seront supprimés dans l'avenir. Utilisez PDO ou mysqli à la place.

1

utilisez cette requête

mysql_query ("UPDATE users SET profile='".$file_path."' WHERE id=".(int)$user_id) or die ("Error in query: $query. ".mysql_error()); 
1

Essayez de mettre backquotes dans la requête SQL au lieu de guillemets avant et l'espace mis entre «Et clause WHERE.

votre look de recherche comme celui-ci,

mysql_query ("UPDATE `users` SET `profile`='".$file_path."' WHERE `id`=".(int)$user_id) 
or die ("Error in query: $query. ".mysql_error()); 
1

done utiliser des guillemets simples autour des noms de colonnes et de table, utilisez plutôt des accents graves

 mysql_query ("UPDATE `users` SET profile='".$file_path."' 
        WHERE id = '".(int)$user_id."' ") 
    or die ("Error in query: $query. ".mysql_error());