【发布时间】:2022-01-10 14:56:35
【问题描述】:
我正在尝试安装一个脚本,实际上它在我填写我的信息错误时起作用,但是当我尝试使用真实信息时,它给了我这样的错误:
致命错误:未捕获的 PDOException:SQLSTATE[HY093]:无效参数编号:绑定变量的数量与 blablabla/Session.php:129 中的标记数量不匹配
那个代码块完全是;
/* Verify that user is in database */
$query = "SELECT session_id FROM user_sessions WHERE session_id = '$session_id' AND userid = '$userid'";
$stmt = $this->db->prepare($query);
$stmt->execute(array(':userid' => $userid, ':sessionid' => $session_id)); ///LINE 129///
$count = $stmt->rowCount();
if (!$stmt || $count < 1) {
return 1; // Indicates username failure
}
$dbarray = $stmt->fetch();
/* Validate that userid is correct */
if ($session_id == $dbarray['session_id']) {
return 0; // Success! Username and userid confirmed
} else {
return 2; // Indicates userid invalid
}
}
这里是所有 session.php 代码 (https://codeshare.io/gLbJAR/)
【问题讨论】:
-
$query 中的变量不应该是
:session_id格式,而不是$session_id格式吗?看起来 PDO 只是不知道有任何参数,所以你提供的两个太多了。 -
错误信息有什么不清楚的地方吗?您正在构建的查询不包含任何参数。另外,请注意,在这种情况下不应使用字符串连接,特别是如果您已经想使用准备好的语句
-
对不起,我只是不擅长 php,但我尝试了你所说的,这也给了我同样的错误
-
请通过编辑将所有尝试添加到您的问题中
-
感谢您的建议。我明天会这样做,现在我在工作,很忙。
标签: php pdo fatal-error