MySQLi prepared statement false zurückgeben

Ich versuche, führen Sie mehrere Abfragen in meiner Datenbank mit MySQLi. Das ist mein code:

$stmt = $mysqli->prepare('SELECT password FROM `users` WHERE username=? LIMIT 1');
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($hashedPass);
$stmt->fetch();

/* Check the passwords match */
$pwdHasher = new PasswordHash(8, FALSE);
if(!$pwdHasher->CheckPassword($password, $hashedPass))
    exit;

$stmt = $mysqli->prepare('SELECT u_id FROM `users` WHERE username=? LIMIT 1');
$stmt->bind_param('s', $username);
$stmt->execute();
$stmt->bind_result($u_id);
$stmt->fetch();

Aber wenn der code ausgeführt bekomme ich diesen Fehler:

Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\ajax\login.php on line 42

Ich habe überprüft, dass die Datenbank-Felder existieren, so dass es nicht. Die erste Abfrage funktioniert, scheint es einfach zu sein, die zweite nicht. Ich habe die Abfrage auf die eigene phpMyAdmin-und das erfolgreich erzeugt eine Ergebnismenge, also ich weiß wirklich nicht, was falsch ist.

  • die bind_param() Anruf ist es? die erste für das Kennwort oder die zweite für die user_id Feld? Und warum kommst du nicht mit nur einer Abfrage?
InformationsquelleAutor James Dawson | 2012-01-02
Schreibe einen Kommentar