検索

ホームページ  >  に質問  >  本文

PHP エラー メッセージを解決するにはどうすればよいですか?試してみましたが、まだ成功しません。

<p><br /></p> <pre class="brush:php;toolbar:false;">functionconfirmUserID($session_id, $userid) { /* ユーザーがデータベースに存在することを確認します */ $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)); // エラー メッセージは、ここから送信されていることを示します $count = $stmt->rowCount(); if (!$stmt || $count < 1) { 1 を返します。 // ユーザー名の失敗を示します } $dbarray = $stmt->fetch(); /* ユーザー ID が正しいことを検証します */ if ($session_id == $dbarray['session_id']) { 0を返します。 // 成功!ユーザー名とユーザーIDが確認されました } それ以外 { 2を返します。 // ユーザー ID が無効であることを示します } }</pre> <p>私たちはこの危険な情報を発見しました。 <ブロック引用> <p>致命的なエラー: PDOException をキャッチできません: SQLSTATE[HY093]: 無効なパラメーター番号: バインドされた変数の数が C:xampphtdocstintoadminincludesSession.php:129 のトークンの数と一致しません スタック トレース: #0 C:xampphtdocstintoadminincludesSession.php(129) : PDOStatement->execute(Array) #1</p> </blockquote> <pre class="brush:php;toolbar:false;">functionconfirmUserID($session_id, $userid) { /* ユーザーがデータベースに存在することを確認します */ $query = "SELECT session_id FROM user_sessions WHERE 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を返します。 // ユーザー ID が無効であることを示します } }</pre> <p>さらに多くの質問があります</p>
P粉773659687P粉773659687480日前400

全員に返信(1)返信します

  • P粉794851975

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

    プレースホルダーの前にコロン (:) を追加し、$userID 変数と $sessionID 変数をクエリと連結しないようにする必要があります。

    リーリー

    返事
    0
  • キャンセル返事