Maison > base de données > tutoriel mysql > Comment résoudre l'erreur PHP PDOException « Numéro de paramètre invalide » dans les instructions préparées ?

Comment résoudre l'erreur PHP PDOException « Numéro de paramètre invalide » dans les instructions préparées ?

Susan Sarandon
Libérer: 2024-12-11 07:42:14
original
908 Les gens l'ont consulté

How to Resolve the PHP PDOException

PHP PDOException : Correction de l'erreur « Numéro de paramètre non valide »

Cette erreur se produit généralement lorsqu'une requête tente de lier un nombre incorrect de paramètres à une déclaration préparée par le PDO. Dans le code fourni, l'erreur est probablement due à l'utilisation d'espaces réservés nommés dans la chaîne de requête.

La requête d'origine :

$sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash";
Copier après la connexion

utilise le même espace réservé nommé ":hash" pour à la fois l'insertion initiale et la mise à jour. Cependant, PDO nécessite des marqueurs de paramètre uniques pour chaque valeur liée.

Pour résoudre ce problème, renommez l'espace réservé dans la clause de mise à jour :

$sql = "INSERT INTO persist (user_id, hash, expire) VALUES (:user_id, :hash, :expire) ON DUPLICATE KEY UPDATE hash=:hash2";
Copier après la connexion

De plus, liez un tableau de paramètres à la méthodeexecute() :

$stm->execute(array(":user_id" => $user_id, ":hash" => $hash, ":expire" => $future, ":hash2" => $hash));
Copier après la connexion

Cette modification garantit que chaque valeur liée a un marqueur de paramètre unique, résolvant le "Numéro de paramètre invalide" erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal