2013-01-06 71 views
0

我第一次使用PDO。我創建了這個方法,我得到這個錯誤:PDO rowCount錯誤

Call to a member function rowCount() on a non-object 

以下是我的代碼。

$db = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8", $dbuser, $dbpassword) 

    function doesRecordExist($query) { 
      global $db; 
      try { 
       $stmt = $db->query($query); 
       $count = $stmt->rowCount(); 
       return $count; 
      } catch (PDOException $ex) { 
       die($ex->getMessage()); 
      } 
     } 

你能幫我請

回答

3

爲什麼不使用預處理語句:另外,您需要執行您查詢你指望它

$db = new PDO("mysql:host=$dbhost;dbname=$dbname;charset=utf8", $dbuser, $dbpassword) 

function doesRecordExist($query) { 
     global $db; 
     try { 
      $stmt = $db->prepare($query); 
      $stmt->execute(); 
      $count = $stmt->rowCount(); 
      return $count; 
     } catch (PDOException $ex) { 
      die($ex->getMessage()); 
     } 
    } 
1

我忘記了創建一個表,查詢指的是。對不起,任何不便

2

不要使用全局變量之前。相反,將這個作爲一個對象傳遞。

$db = new PDO(....); 

function doesRecordExist($query, PDO $db) { 
     try { 
      $stmt = $db->prepare($query); 
      $stmt->execute(); 
...