2016-05-21 16 views
0

Ich versuche, Benutzer mit vorbereiteten Anweisungen zu authentifizieren. Problem ist, weil stmt immer null zurückgeben. Wenn ich clasic mysqli benutze Abfrage alles gute Arbeit.PHP mysqli vorbereitete Anweisung zur Authentifizierung

meinen Code überprüfen:

public function autheticate($username, $password) 
    { 

     $query = "SELECT U.username, U.password FROM users as U WHERE U.username = ? AND U.password = ?"; 

     if($stmt = $this->conn->prepare($this->conn, $query)) 
     { 
      $stmt->bind('ss',$username, $password); 

      $stmt->execute(); 

      $stmt->close(); 

      return true; 
     } 

    // print_r($this->conn); 
    } 

wenn ich var_dumb($this->autheticate('admin', 'admin')) erhalte ich NULL aber Benutzer existiert in der Datenbank und die Verbindung ist in Ordnung.

Wenn ich print_r($this->conn); uncoment i erhalten Ausgabe:

mysqli Object 
(
    [affected_rows] => 
    [client_info] => 
    [client_version] => 50547 
    [connect_errno] => 0 
    [connect_error] => 
    [errno] => 
    [error] => 
    [error_list] => 
    [field_count] => 
    [host_info] => 
    [info] => 
    [insert_id] => 
    [server_info] => 
    [server_version] => 
    [stat] => 
    [sqlstate] => 
    [protocol_version] => 
    [thread_id] => 
    [warning_count] => 
) 

Antwort

0

Prepare method für mysqli andere Signatur als diese hat, was Sie verwendet haben. Sie sollten es auf die folgende Art und Weise anrufen:

ohne Verbindung als Argument übergeben. Das ist der erste Fehler. Mureinik wies auf ein anderes Problem hin.

Verwandte Themen