2013-03-20 132 views
1

我不斷收到此錯誤消息,不知道爲什麼。這是一個登錄腳本,我複製了表格here,因爲我不知道如何使用PHPASS進行登錄。這裏是我的代碼:調用未定義的方法PDOStatement :: bind_result()?

$email  = ($_POST['email']); 
$pass  = ($_POST['pass']); 

require 'connect.php'; 
require 'PasswordHash.php'; 
$hash = '*'; 
    $login = $con->prepare("SELECT password FROM basicuserinfo WHERE email=:email"); 
    $login->bindParam(':email', $email); 
    $login->execute(); 
    $login->bind_result($hash); 
    if (!$login->fetch() && $con->errno) 
     die(); 
    if ($hasher->CheckPassword($pass, $hash)) { 
     $what = 'Authentication succeeded'; 
    } else { 
     $what = 'Authentication failed'; 
    } 
    unset($hasher); 
+3

對於PDO,「bind_result」或「bindResult」不存在。 – hjpotter92 2013-03-20 02:33:43

+0

'bind_result()'是一個'mysqli_statement'方法,不需要(或有效)PDO。 – 2013-03-20 02:35:08

+2

我不會推薦你不明白的複製/粘貼代碼。通讀一遍,並試圖弄清楚發生了什麼,然後你就可以調試它。 – 2013-03-20 02:35:18

回答

4

在你have given,他們正在使用的MySQL相關的任務MySQLi連接的鏈接。方法bind_result是其中mysqli中的方法之一。

這在MySQL連接的方法中既沒有必要也沒有必要。這是PDO的list of valid methods/constructors and classes等。


你應該改用這裏是:

$hash = $login->fetchColumn(); 

其中fetchColumn從結果集中的下一行返回一列。

+0

謝謝你,先生! – 2013-03-20 02:48:07

相關問題