2010-03-04 7 views
1

Y at-il un moyen d'obtenir la requête après MySQLi le prépare? Ma requête est chambouler:MySQLi requête en PHP ne fonctionne pas bien, est-il un moyen d'obtenir la requête exacte?

$query = "UPDATE event SET group=?, boxed=?, name=?, location=?, time=?, day=?, type=? WHERE id=? LIMIT 1"; 
if($stmt = $db -> prepare($query)) 
{ 
    $stmt -> bind_param("iisssssi", $group, $boxed, $name, $location, $time, $day, $etype, $id); 
    $stmt -> execute(); 
    $stmt -> close(); 
} 
else 

Message d'erreur:

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 'group = ?, boxed = ?, name = ?, emplacement = ?, heure =?, jour = ?, type =? OERE id =? LIMITE 1' à la ligne 1

variable group est un entier, boxed est un entier, le reste sont des chaînes, et id est un entier.

Répondre

6

Vous utilisez le mot SQL réservé "group" comme l'un des noms de colonnes.

+1

et vous pouvez résoudre ce problème en utilisant '' autour du nom de la colonne. C'est le caractère restant de 1 sur un clavier querty. – SorcyCat

1

Non, il n'y a aucun moyen d'obtenir la requête après que MySQLi l'ait préparé, car il n'y a pas de requête au sens habituel. La chaîne va au serveur comme vous l'avez écrit - avec des points d'interrogation. C'est un inconvénient gênant des déclarations préparées.

Questions connexes