搜尋

首頁  >  問答  >  主體

如何解決PHP錯誤訊息?儘管我嘗試過了,但仍然沒有成功。

<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. (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粉773659687P粉773659687480 天前399

全部回覆(1)我來回復

  • P粉794851975

    P粉7948519752023-08-09 12:14:12

    您應該在佔位符之前新增冒號(:),並避免將$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();

    回覆
    0
  • 取消回覆