Sto tentando di eseguire più query sul mio database utilizzando MySQLi. Questo è il mio codice:Dichiarazione preparata MySQLi restituisce false
$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();
Ma quando il codice viene eseguito ottengo questo errore:
Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\ajax\login.php on line 42
Ho verificato che esistono i campi del database, quindi non è così. La prima query funziona, sembra proprio la seconda che non lo fa. Ho eseguito la query da sola in phpMyAdmin e questo produce correttamente un set di risultati, quindi non so davvero cosa c'è che non va.
quale chiamata 'bind_param()' è? il primo per la password o il secondo per il campo 'user_id'? E perché non usi solo una query? – Progman