suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie behebe ich PHP-Fehlermeldungen? Obwohl ich es versucht habe, immer noch kein Erfolg.

<p><br /></p> <pre class="brush:php;toolbar:false;">function activateUserID($session_id, $userid) { /* Überprüfen Sie, ob sich der Benutzer in der Datenbank befindet */ $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)); // Fehlermeldung zeigt an, dass es von hier kommt $count = $stmt->rowCount(); if (!$stmt || $count < 1) { Rückgabe 1; // Zeigt einen Benutzernamenfehler an } $dbarray = $stmt->fetch(); /* Überprüfen Sie, ob die Benutzer-ID korrekt ist */ if ($session_id == $dbarray['session_id']) { 0 zurückgeben; // Erfolg! Benutzername und Benutzer-ID bestätigt } anders { Rückkehr 2; // Zeigt eine ungültige Benutzer-ID an } }</pre> <p>我一直收到这个错误信息.</p> <blockquote> <p>Schwerwiegender Fehler: Nicht erfasste PDOException: SQLSTATE[HY093]: Ungültige Parameternummer: Anzahl der gebundenen Variablen stimmt nicht mit der Anzahl der Token in C:xampphtdocstintoadminincludesSession.php:129 überein. Stack-Trace: #0 C:xampphtdocstintoadminincludesSession.php(129) : PDOStatement->execute(Array) #1</p> </blockquote> <pre class="brush:php;toolbar:false;">function activateUserID($session_id, $userid) { /* Überprüfen Sie, ob sich der Benutzer in der Datenbank befindet */ $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); // Fehlermeldung zeigt an, dass es von hier kommt $stmt->execute(); $count = $stmt->rowCount(); if (!$stmt || $count < 1) { Rückgabe 1; // Zeigt einen Benutzernamenfehler an } $dbarray = $stmt->fetch(); /* Überprüfen Sie, ob die Benutzer-ID korrekt ist */ if ($session_id == $dbarray['session_id']) { 0 zurückgeben; // Erfolg! Benutzername und Benutzer-ID bestätigt } anders { Rückkehr 2; // Zeigt eine ungültige Benutzer-ID an } }</pre> <p>给出了更多的错误提示</p>
P粉773659687P粉773659687480 Tage vor395

Antworte allen(1)Ich werde antworten

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

    Antwort
    0
  • StornierenAntwort