MySQLi préparé instruction de mise à jour de PHP
Comment pouvez-vous écrire une instruction de mise à jour? Référence:mysqli::préparer
J'ai essayé de l'écrire comme suit:
if ($stmt = $mysqli->prepare("UPDATE tblFacilityHrs SET title =? description = ? WHERE uid = ?")){
$stmt->bind_param('sss', $title, $desc, $uid2);
//Get params
$title=$_POST['title'];
$desc=$_POST['description'];
$uid2=$_GET['uid'];
$stmt->execute();
$stmt->close();
}
else {
//Error
printf("Prep statment failed: %s\n", $mysqli->error);
}
Erreur:
Prep tresorerie a échoué: Vous avez une erreur dans votre syntaxe SQL; vérifier la
le manuel qui correspond à votre serveur MySQL version pour le droit
la syntaxe à utiliser à proximité de la 'description = ? OÙ uid = ?' à la ligne 1 Édité
ligne.
OriginalL'auteur | 2012-05-16
Vous devez vous connecter pour publier un commentaire.
Vous êtes juste en manque une virgule entre les colonnes:
Lorsque MySQL signale une erreur de l'aime de consultez le manuel de syntaxe à utiliser à côté de quelque chose, regarder le plus souvent le caractère précédant immédiatement la " quelque chose, car c'est là votre erreur se produit.
Remarque: vous devrez peut-être appeler
bind_param()
après réglage de l'entrée des variables plutôt qu'avant. Je ne me souviens pas comment MySQLi analyse et lorsqu'ils sont liés, mais logiquement, il n'a plus de sens dans le code pour les mettre en premier, puis lier de toute façon.OriginalL'auteur Michael Berkowski
Vous avez probablement besoin d'ajouter des virgules:
OriginalL'auteur Madara Uchiha
Vous lient les paramètres avant de les assigner aux variables:
modifier: scratch, il ne semble pas faire une différence si oui ou non les paramètres sont liés avant ou après avoir défini les variables (vous apprendre quelque chose de nouveau tous les jours!), mais comme Michael a dit, logiquement, il est logique de définir en premier.
OriginalL'auteur billyonecan