2016-04-22 63 views
0

我正在嘗試移至PDO。嘗試獲取行數時PDO上的fetchColumn錯誤

我想做一個經典的查詢檢查行數,在mysql中我會做mysql_num_rows_result但我讀過的地方,在PDO它不起作用。

所以我已經嘗試使用下面的代碼獲取列:

global $bdd; 
      $login = $bdd->query("SELECT 
        COUNT 
        FROM spb_clients_acces_compte, 
         spb_clients_infos_generales 
        WHERE spb_clients_acces_compte.spb_clients_acces_compte_e_mail = '{$email}' 
        AND spb_clients_acces_compte.spb_clients_acces_compte_pwd_md5 = '{$pass}' 
        AND spb_clients_acces_compte.spb_clients_acces_compte_admin = 1"); 
      $reponse = $bdd->fetchColumn(); 
      if ($reponse == 0): 

      elseif ($reponse == 1): 

      else: 
      endif; 
      var_dump($reponse); 

這回我:

(!) Fatal error: Call to undefined method PDO::fetchColumn() in C:\wamp\www\spb2016\admin\core\login.php on line 20

第20行是:$reponse = $bdd->fetchColumn();

我試着許多事情沒有成功

任何幫助將不勝感激。

+0

* * 「我會做mysql_num_rows_result但我在其他地方見過,在PDO這是行不通的。」 - 沒錯。你不能混合不同的API,我們不知道你是否使用同一個API來連接。如果你沒有與PDO聯繫,那麼這是一個問題。 –

+0

[獲取具有PDO的行數](http://stackoverflow.com/a/31569733/1011527) –

+0

這個'SELECT COUNT'如果您想使用該功能,並且您沒有調用列'COUNT',然後是'COUNT(col | *)' –

回答

1

首先,您需要在您的COUNT函數中添加一列。 COUNT是一個mysql函數,它返回你傳遞它的任何參數的個數,所以COUNT(id)可以工作。

其次,您必須使用PDOStatement才能獲取結果。更換

$reponse = $bdd->fetchColumn(); 

$reponse = $login->fetchColumn(); 
+0

第三,他必須使用pdo準備好的分層,否則根本沒有必要使用pdo。 –

+0

@YourCommonSense你有關於預備陳述的文檔嗎?謝謝你的幫助 –

+0

@Stanislas是的,我有[非常好的文檔](http://phpdelusions.net/pdo) –

相關問題