在pdo中的非对象上调用成员函数fetch()

时间:2016-01-19 10:33:56

标签: php mysql pdo

我不知道为什么我收到call to a member function fetch() on a non-object in pdo错误。这让我非常沮丧!

$db= new PDO($dns,DB_USER,DB_PASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$workspace_id=isset($_GET['workspace']) ? (int)$_GET['workspace'] : "";

try{
    $sql="SELECT * FROM messages WHERE workspace_id = :id";
  $stmt=$db->prepare($sql);
  $stmt->bindValue(':id', $workspace_id, PDO::PARAM_INT);
  $result=$stmt->execute();
  $message=$result->fetch();
}catch(Exception $e){echo $e->getMessage();}

2 个答案:

答案 0 :(得分:1)

因为$stmt->execute()应返回boolean值。

如果你想使用fetch,你应该从$stmt

调用方法

文档:PDOStatement

答案 1 :(得分:1)

<强> execute()

  

成功时返回TRUE,失败时返回FALSE。

在您的情况下,您尝试从bool值中获取数据

<? return str_replace(".","","{base_price_incl_tax product}"); ?>

只需要改变

$result=$stmt->execute();
$message=$result->fetch();