2016-03-13 5 views
-1

Я новичок на форуме, поэтому я постараюсь изо всех сил. У меня ошибка с кодом PHP, потому что мой сервер не поддерживает драйвер mysqlnd. Я знаю, что мне нужно использовать bind_result(); но я понятия не имею, как это сделать (я учусь).Ошибка PHP get_result() undefined method

Пожалуйста, помогите! Благодаря!

Вот код:

/** 
* Storing new user 
* returns user details 
*/ 
public function storeUser($name, $email, $password) { 
    $uuid = uniqid('', true); 
    $hash = $this->hashSSHA($password); 
    $encrypted_password = $hash["encrypted"]; // encrypted password 
    $salt = $hash["salt"]; // salt 

    $stmt = $this->conn->prepare("INSERT INTO users(unique_id, name, email, encrypted_password, salt, created_at) VALUES(?, ?, ?, ?, ?, NOW())"); 
    $stmt->bind_param("sssss", $uuid, $name, $email, $encrypted_password, $salt); 
    $result = $stmt->execute(); 
    $stmt->close(); 

    // check for successful store 
    if ($result) { 
     $stmt = $this->conn->prepare("SELECT * FROM users WHERE email = ?"); 
     $stmt->bind_param("s", $email); 
     $stmt->execute(); 
     // Error here 
     $user = $stmt->get_result()->fetch_assoc(); 
     $stmt->close(); 

     return $user; 
    } else { 
     return false; 
    } 
} 

/** 
* Get user by email and password 
*/ 
public function getUserByEmailAndPassword($email, $password) { 

    $stmt = $this->conn->prepare("SELECT * FROM users WHERE email = ?"); 

    $stmt->bind_param("s", $email); 

    if ($stmt->execute()) { 
     // Error here 
     $user = $stmt->get_result()->fetch_assoc(); 
     $stmt->close(); 

     // verifying user password 
     $salt = $user['salt']; 
     $encrypted_password = $user['encrypted_password']; 
     $hash = $this->checkhashSSHA($salt, $password); 
     // check for password equality 
     if ($encrypted_password == $hash) { 
      // user authentication details are correct 
      return $user; 
     } 
    } else { 
     return NULL; 
    } 
} 
+1

'$ stmt-> Execute(); $ пользователь = $ stmt-> get_result() -> fetch_assoc(); 'изменить его на' $ result = $ stmt-> execute(); $ user = $ result-> get_result() -> fetch_assoc(); ' –

ответ

0

Вы должны заменить $stmt с $result после Error here

$result = $stmt->execute(); 
// Error here  $user=$result->get_result()->fetch_assoc(); 
+0

Это Log.d" Call to a функция-член get_result() для не-объекта "... Прежде чем" Вызов неопределенного метода mysqli_stmt :: get_result() "... Любая идея? –