cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk menyelesaikan mesej ralat PHP? Walaupun dah cuba, tetap tak berjaya.

<p><br /></p> <pre class="brush:php;toolbar:false;">function confirmUserID($session_id, $userid) { /* Sahkan bahawa pengguna berada dalam pangkalan data */ $query = "PILIH session_id DARI pengguna_sessions WHERE session_id = '$session_id' DAN userid = '$userid'"; $stmt = $this->db->prepare($query); $stmt->execute(array(':userid' => $userid, ':sessionid' => $session_id)); // Mesej ralat menunjukkan ia datang dari sini $count = $stmt->rowCount(); jika (!$stmt || $count < 1) { pulangan 1; // Menunjukkan kegagalan nama pengguna } $dbarray = $stmt->fetch(); /* Sahkan bahawa id pengguna adalah betul */ if ($session_id == $dbarray['session_id']) { pulangan 0; // Berjaya! Nama pengguna dan id pengguna disahkan } lain { pulangan 2; // Menunjukkan id pengguna tidak sah } }</pre> <p>我一直收到这个错误信息。</p> <blockquote> <p>Ralat maut: PDOException Tidak Ditangkap: SQLSTATE[HY093]: Nombor parameter tidak sah: bilangan pembolehubah terikat tidak sepadan dengan bilangan token dalam C:xampphtdocstintoadminincludesSession.php:129 Surih tindanan: #0 C:xampphtdocstintoadminincludes.php(dese29sion) : PDOStatement->execute(Array) #1</p> </blockquote> <pre class="brush:php;toolbar:false;">function confirmUserID($session_id, $userid) { /* Sahkan bahawa pengguna berada dalam pangkalan data */ $query = "PILIH session_id DARI pengguna_sessions WHERE session_id = '$session_id' DAN userid = '$userid'"; $stmt = $this->db->prepare($query); $stmt = array(':userid' => $userid, ':sessionid' => $session_id); // Mesej ralat menunjukkan ia datang dari sini $stmt->execute(); $count = $stmt->rowCount(); jika (!$stmt || $count < 1) { pulangan 1; // Menunjukkan kegagalan nama pengguna } $dbarray = $stmt->fetch(); /* Sahkan bahawa id pengguna adalah betul */ if ($session_id == $dbarray['session_id']) { pulangan 0; // Berjaya! Nama pengguna dan id pengguna disahkan } lain { pulangan 2; // Menunjukkan id pengguna tidak sah } }</pre> <p>给出了更多的错误提示</p>
P粉773659687P粉773659687480 hari yang lalu396

membalas semua(1)saya akan balas

  • P粉794851975

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

    Anda harus menambah titik bertindih (:) sebelum pemegang tempat dan elakkan menggabungkan pembolehubah $userID dan $sessionID dengan pertanyaan.

    $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();

    balas
    0
  • Batalbalas