2015-12-06 185 views
-1

我正在創建一個腳本來添加新用戶。PDO rowCount()總是返回1

所有工作正常,但現在我試圖過濾掉重複的電子郵件。所以如果電子郵件已經存在,它應該會給出錯誤信息。

但由於某些原因$count總是> 0 ...

這是我的代碼:

$query = $db->prepare("SELECT COUNT(*) FROM `users` WHERE `email` = ':email'"); 
$query->execute(array(
     ':email' => $email 
     )); 
$count = $query->rowCount(); 
echo $count; 

我在做什麼錯?

+1

可能是因爲'SELECT COUNT(*)'是'返回爲0'行,這是'1'行。無論是改變'選擇\'電子郵件\''或從查詢得到的返回值,即'$查詢 - >取()[0];' – Sean

+0

只是一個猜測,但經過嘗試添加查詢 - $> store_result()你執行語句。我有一個mysqli查詢的相同問題,並解決了它,但我不知道很多有關PDO,所以它只是一個猜測。 – user3154948

+0

@ user3154948' - > store_result()'是一個'mysqli'方法,而不是'PDO'方法,這樣就不會在這裏工作。 – Sean

回答

2

enter image description hereSELECT COUNT(*)是行,這是1返回0 row.So改變count(*),電子郵件

<?php 
$query = $db->prepare("SELECT email FROM `users` WHERE `email` = :email"); 
$query->execute(array(
':email' => $email 
)); 
$count = $query->rowCount(); 
echo $count; 
?> 
+1

你的答案是措辭幾乎完全一樣[我的評論](http://stackoverflow.com/questions/34118646/pdo-rowcount-always-returning-1?noredirect=1#comment55986290_34118646)被張貼6分鐘您發佈之前。巧合? – Sean

+0

@肖恩:但答案總是一樣的。更重要的是說如何解決它是「選擇電子郵件從'用戶'哪裏'電子郵件=':電子郵件'」結果答案,他需要。我對嗎 ? –

+0

@肖恩:即使是第一次投票評論你的評論也是由我:)。知道也是 –