Dépannage "SQLSTATE[HY093] : numéro de paramètre invalide" dans Yii
Lors de la tentative d'exécution d'une instruction SQL dans le DAO de Yii, une erreur Le message « SQLSTATE[HY093] : numéro de paramètre non valide : le paramètre n'a pas été défini » peut apparaître. Ce problème est dû à une inadéquation entre les paramètres utilisés dans la requête SQL et les valeurs fournies dans la méthode bindValue().
Dans l'exemple de code fourni, la requête SQL comprend huit paramètres : :alias, :password , :ssn, :surname, :firstname, :email, :city et :country. Cependant, la méthode bindValue() n'inclut que sept paramètres et lie le mauvais nom de paramètre, :username, au lieu de :alias. Cette incompatibilité entraîne l'erreur susmentionnée.
Pour résoudre ce problème, assurez-vous que les noms de paramètres utilisés dans la méthode bindValue() correspondent exactement aux noms de paramètres dans la requête SQL. Dans ce cas, la méthode bindValue() doit être modifiée comme suit :
$command->bindValue(":alias", $model->alias);
Causes supplémentaires et stratégies d'atténuation
Outre les incompatibilités de noms de paramètres, d'autres causes possibles de cette erreur inclut :
'enableParamLogging' => true,
Cela fournira un journal de la requête et des paramètres qui tentaient d'être liés, facilitant ainsi le débogage.
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!