如何解决PHP错误信息?尽管我尝试过了,但仍然没有成功。
P粉773659687
P粉773659687 2023-08-08 12:34:18
0
1
393
<p><br />></p> <pre class="brush:php;toolbar:false;">函数confirmUserID($session_id, $userid) { /* 验证用户是否在数据库中 */ $query = "从 user_sessions 中选择 session_id,其中 session_id = '$session_id' AND userid = '$userid'"; $stmt = $this->db->prepare($query); $stmt->execute(array(':userid' => $userid, ':sessionid' => $session_id)); // 错误消息表明它来自这里 $count = $stmt->rowCount(); if (!$stmt || $count < 1) { 返回1; // 表示用户名失败 } $dbarray = $stmt->fetch(); /* 验证用户ID是否正确 */ if ($session_id == $dbarray['session_id']) { 返回0; // 成功!用户名和用户 ID 已确认 } 别的 { 返回2; // 表示userid无效 } }</pre> <p>我一直收到这个错误信息。</p> <块引用> <p>致命错误:未捕获的 PDOException:SQLSTATE[HY093]:参数编号无效:绑定变量的数量与 C:xampphtdocstintoadminincludesSession.php:129 中的标记数量不匹配堆栈跟踪:#0 C:xampphtdocstintoadminincludesSession.php(129) : PDOStatement->execute(Array) #1

</块引用> <pre class="brush:php;toolbar:false;">函数confirmUserID($session_id, $userid) { /* 验证用户是否在数据库中 */ $query = "从 user_sessions 中选择 session_id,其中 session_id = '$session_id' AND userid = '$userid'"; $stmt = $this->db->prepare($query); $stmt = array(':userid' => $userid, ':sessionid' => $session_id); // 错误消息表明它来自这里 $stmt->execute(); $count = $stmt->rowCount(); if (!$stmt || $count < 1) { 返回1; // 表示用户名失败 } $dbarray = $stmt->fetch(); /* 验证用户ID是否正确 */ if ($session_id == $dbarray['session_id']) { 返回0; // 成功!用户名和用户 ID 已确认 } 别的 { 返回2; // 表示userid无效 } }</pre> <p>给出了更多的错误提示</p>
P粉773659687
P粉773659687

全部回复(1)
P粉794851975

您应该在占位符之前添加冒号(:),并避免将$userID和$sessionID变量与查询进行拼接。

$stmt = $pdo->prepare("SELECT session_id FROM user_sessions WHERE session_id = :session_id AND userid = :userid");
$stmt->execute(['session_id' => $session_id, 'userid' => $userid]); 
$user = $stmt->fetch();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板