Je ne trouve aucune référence à l'utilisation de déclarations préparées avec "sur la mise à jour de la clé en double" avec MySQL et PHP. Ai-je raison de penser que cela n'est pas possible? P>
-Jim p>
3 Réponses :
Vous pouvez certainement utiliser sur la mise à jour de clé en double code> avec php + mySQL. L'as tu essayé? Si vous avez, quel problème avez-vous rencontré? P>
Désolé, ma question n'était pas claire, alors je l'ai modifiée. J'ai utilisé plusieurs fois sur la mise à jour de clé en double, mais jamais avec une déclaration préparée. J'ai regardé plusieurs endroits pour obtenir des instructions sur la manière dont cela pourrait être fait mais rien trouvé. Avant de gaspiller un après-midi sur une expérimentation futile, je pensais vérifier si quelqu'un peut confirmer que cela est réellement réalisable. -Jim
Vous devriez pouvoir exécuter chaque requête SQL en tant que déclaration préparée. Je ne sais pas pourquoi vous pensez qu'il y aurait une exception pour sur la mise à jour de clé en double code>. Essayez-le d'abord et demandez-nous s'il y a des problèmes. P>
Merci emil. Je vais essayer, bien que je ne puisse pas imaginer comment cela fonctionnerait. Ajoutez-vous la mise à jour de clé en double à la requête dans mysqli_prepare et que les valeurs de remplacement sont aussi? Des marques? Si cela fonctionnera, cela me serait très utile. Je vais faire rapport sur mes résultats, bien que cela puisse être un peu avant d'avoir le temps d'essayer cela. Jim
Voici un exemple généralisé de cette utilisation:
$db->prepare(' INSERT INTO tableName (id, col1, col2, col3...) VALUES (?,?,?,?) ON DUPLICATE KEY UPDATE col1 = VALUES(col1), col2 = VALUES(col2), col3 = VALUES(col3) '); $stmt->bind_param('isss', $id, $col1, $col2, $col3 ); $db->execute($stmt); if ($id == null) { //If you need the auto increment from the insert. $newId = $stmt->insert_id; }