2014-03-28 80 views
0

什麼事的傢伙()函數,PHP bindParam多參數

我有以下代碼:

$selectUserQuery = 'SELECT email_address, password FROM user WHERE email_address = :email_address AND password = :password'; 
$prepSelectUser = $conn->prepare($selectUserQuery); 
/* 
* HOW DO I ADD MULTIPLE PARAMETERS TO THIS BINDPARAM() FUNCTION? 
*/ 
$prepSelectUser->bindParam(':email_address', $email, PDO::PARAM_INT); 
$prepSelectUser->execute(); 
$userResult = $prepSelectUser->fetchAll(); 
$userCount = count($userResult); 

我怎樣才能多參數添加到bindParam()函數?

+0

糟糕,是的,錯誤。它不會造成任何麻煩? – user3456043

+0

您只需要爲每個要綁定的參數調用'bindParam()'一次 – DaveRandom

回答

1

首先,更改

$prepSelectUser->bindParam(':email_address', $email, PDO::PARAM_INT); 

$prepSelectUser->bindParam(':email_address', $email, PDO::PARAM_STR); 

然後調用另一個bindParam,像

$prepSelectUser->bindParam(':password', $password, PDO::PARAM_STR); 
+0

好的,是的,我注意到了這個錯誤。我之所以這麼做,是因爲我從另一個網站複製了這些代碼,並沒有真正瞭解PDO(開頭看起來像阿拉伯語:D)。我修好了,改成了STR。所以基本上,我只需要添加第二個bindParam()函數來使其工作?謝謝! – user3456043

5

你實際上並不需要這個功能的。以及您使用的大多數其他代碼。

$sql = 'SELECT 1 FROM user WHERE email_address = ? AND password = ?'; 
$stmt = $conn->prepare($sql); 
$stmt->execute([$email, $password]); 
$userCount = $stmt->fetchColumn(); 
+0

謝謝你的提示!噢,順便說一句,這裏的人們對持續連接有什麼看法?有人說使用它,因爲它使一切都變得更快,其他人則說它不好。你對此有何看法或其他人? – user3456043

+0

除非你確定知道你在做什麼,否則不要使用它們。 –