【问题标题】:PDO (mysql) Invalid parameter number: parameter was not definedPDO (mysql) 参数号无效:参数未定义
【发布时间】:2012-12-02 07:04:52
【问题描述】:

我发现了很多关于这个错误的现有问题,但它们都与我的代码情况无关,所以尽管搜索了一段时间,但我不得不提出一个新问题。

我正在用 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

所以查询中有四个占位符,所有四个都对数据感到满意,但是当我在绑定后尝试执行查询时出现上述错误。

有人知道是什么原因造成的吗?

【问题讨论】:

    标签: php mysql pdo


    【解决方案1】:

    占位符must be 字母数字或下划线。

    :esl_comments.commentSet 不是有效的占位符。试试:commentSet吧。

    (当然其他的也需要更换)

    【讨论】:

    • 完美!谢谢你。我实际上看不到 php.net 上的 PDO 手册中概述的位置。
    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2012-04-15
    • 2016-12-15
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多