recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment résoudre les messages d’erreur PHP ? Même si j'ai essayé, toujours sans succès.

<p><br /></p> <pre class="brush:php;toolbar:false;">function confirmUserID($session_id, $userid) { /* Vérifiez que l'utilisateur est dans la base de données */ $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)); // Le message d'erreur indique que cela vient d'ici $count = $stmt->rowCount(); si (!$stmt || $count < 1) { renvoyer 1 ; // Indique un échec du nom d'utilisateur } $dbarray = $stmt->fetch(); /* Valide que l'ID utilisateur est correct */ si ($session_id == $dbarray['session_id']) { renvoie 0 ; // Succès! Nom d'utilisateur et identifiant confirmés } autre { retourner 2 ; // Indique que l'ID utilisateur n'est pas valide } }</pré> <p>我一直收到这个错误信息。</p> <blockquote> <p>Erreur fatale : exception PDO non interceptée : SQLSTATE[HY093] : numéro de paramètre non valide : le nombre de variables liées ne correspond pas au nombre de jetons dans C:xampphtdocstintoadminincludesSession.php:129 Trace de pile : #0 C:xampphtdocstintoadminincludesSession.php(129) : PDOStatement->execute(Array) #1</p> </blockquote> <pre class="brush:php;toolbar:false;">function confirmUserID($session_id, $userid) { /* Vérifiez que l'utilisateur est dans la base de données */ $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); // Le message d'erreur indique que cela vient d'ici $stmt->exécuter(); $count = $stmt->rowCount(); si (!$stmt || $count < 1) { renvoyer 1 ; // Indique un échec du nom d'utilisateur } $dbarray = $stmt->fetch(); /* Valide que l'ID utilisateur est correct */ si ($session_id == $dbarray['session_id']) { renvoie 0 ; // Succès! Nom d'utilisateur et identifiant confirmés } autre { retourner 2 ; // Indique que l'ID utilisateur n'est pas valide } }</pré> <p>给出了更多的错误提示</p>
P粉773659687P粉773659687480 Il y a quelques jours397

répondre à tous(1)je répondrai

  • P粉794851975

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

    Vous devez ajouter deux points (:) avant l'espace réservé et éviter de concaténer les variables $userID et $sessionID avec la requête.

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

    répondre
    0
  • Annulerrépondre