如何解决PHP错误信息?尽管我尝试过了,但仍然没有成功。
P粉773659687
P粉773659687 2023-08-08 12:34:18
[PHP讨论组]
<p><br /></p> <pre class="brush:php;toolbar:false;">function confirmUserID($session_id, $userid) { /* Verify that user is in database */ $query = "SELECT session_id FROM user_sessions WHERE session_id = '$session_id' AND userid = '$userid'"; $stmt = $this-&gt;db-&gt;prepare($query); $stmt-&gt;execute(array(':userid' =&gt; $userid, ':sessionid' =&gt; $session_id)); // Error message indicates it is coming from here $count = $stmt-&gt;rowCount(); if (!$stmt || $count &lt; 1) { return 1; // Indicates username failure } $dbarray = $stmt-&gt;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 } }</pre> <p>我一直收到这个错误信息。</p> <blockquote> <p>Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:xampphtdocstintoadminincludesSession.php:129 Stack trace: #0 C:xampphtdocstintoadminincludesSession.php(129): PDOStatement-&gt;execute(Array) #1</p> </blockquote> <pre class="brush:php;toolbar:false;">function confirmUserID($session_id, $userid) { /* Verify that user is in database */ $query = "SELECT session_id FROM user_sessions WHERE session_id = '$session_id' AND userid = '$userid'"; $stmt = $this-&gt;db-&gt;prepare($query); $stmt = array(':userid' =&gt; $userid, ':sessionid' =&gt; $session_id); // Error message indicates it is coming from here $stmt-&gt;execute(); $count = $stmt-&gt;rowCount(); if (!$stmt || $count &lt; 1) { return 1; // Indicates username failure } $dbarray = $stmt-&gt;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 } }</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();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号