无法执行PDO查询(无效参数编号)但它无效

时间:2013-09-24 19:34:43

标签: php mysql parameters pdo warnings

我在同一个类中有三个函数和函数包含数据库查询。 在其他函数中查询正常,如下所示:

$userId = $_SESSION['uid'];

        $st = $this->db->prepare("SELECT * FROM showinfo, usershows WHERE usershows.showid = showinfo.showid AND usershows.userid = :userId");
        $st->bindParam('userId', $userId);
        $st-> execute();

但是这里查询不起作用:

$st = $this->db->prepare("DELETE FROM usershows WHERE usershows.userid = :userId");
            $st->bindParam(':userid', $userId);
            $st->execute();

它说:

警告:PDOStatement :: execute():SQLSTATE [HY093]:参数号无效:参数未在(文件位置)中定义

代码可以回显我的userId,所以这不能为空。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

在您的第二个示例bindParam()中,您需要使用:userId而不是:userid

PHP区分大小写!