Maison > développement back-end > tutoriel php > Comment résoudre l'exception PDO : \'SQLSTATE[HY093] : numéro de paramètre invalide\' ?

Comment résoudre l'exception PDO : \'SQLSTATE[HY093] : numéro de paramètre invalide\' ?

Susan Sarandon
Libérer: 2024-12-01 03:43:17
original
963 Les gens l'ont consulté

How to Solve the PDO Exception:

Exception PDO : "SQLSTATE[HY093] : numéro de paramètre invalide" résolu

En essayant d'exécuter une instruction préparée par PDO, vous avez été confronté au erreur "SQLSTATE[HY093] : numéro de paramètre non valide". En inspectant le code fourni, il devient évident que vous avez plusieurs paramètres nommés portant le même nom.

Le problème réside dans votre utilisation des paramètres nommés dans l'instruction SQL et l'appel d'exécution correspondant. Plus précisément, vous avez utilisé le paramètre ":hash" deux fois, ce qui n'est pas autorisé dans les instructions préparées par PDO.

Pour résoudre cette erreur, modifiez votre code comme suit :

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

Dans cette instruction mise à jour, un paramètre nommé supplémentaire ":hash2" est introduit pour remplacer la deuxième occurrence de ":hash".

De plus, l'appelexecute() doit être modifié en conséquence :

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

En fournissant des paramètres nommés distincts, vous évitez l'erreur "SQLSTATE[HY093]" provoquée par la redondance des paramètres. Cette approche garantit une liaison appropriée des paramètres et une exécution réussie de l'instruction préparée.

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