0

このエラーについて尋ねる既存の質問をたくさん見つけましたが、どれも私のコードの状況に関連していないので、しばらく検索したにもかかわらず、新しい質問を開始する必要がありました。

PHPでPDOプリペアドステートメントを記述していますが、エラーコードが表示されます。

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: parameter was not defined' in... 

これまでに作成されたクエリは次のとおりです。

SELECT * FROM esl_comments, esl_articles WHERE esl_comments.commentSet=:esl_comments.commentSet AND esl_comments.commentSetInstanceID=:esl_comments.commentSetInstanceID AND esl_comments.commentVisible=:esl_comments.commentVisible AND esl_comments.commentID=:esl_comments.commentID;

そして、データはクエリをうまく実行しようとする関数に渡されています。私はそれをエコーし​​ました、そしてそれは次のように見えます:

esl_comments.commentSet - article
esl_comments.commentSetInstanceID - esl_articles.articleID
esl_comments.commentVisible - Y
esl_comments.commentID - 2

したがって、クエリには4つのプレースホルダーがあり、4つすべてがデータに満足していますが、バインド後にクエリを実行しようとすると、上記のエラーが発生します。

誰かがそれを引き起こしているかもしれないアイデアを持っていますか?

4

1 に答える 1

1

プレースホルダーは英数字またはアンダースコアである必要があります。

:esl_comments.commentSetは有効なプレースホルダーではありません。:commentSet代わりに試してください。

(もちろん、他のものも交換する必要があります)

于 2012-12-02T07:11:22.170 に答える