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

Php 对pdo中的非对象调用成员函数fetch(),php,mysql,pdo,Php,Mysql,Pdo,我不知道为什么我在pdo中得到对非对象的成员函数fetch()的调用。这真让我沮丧 $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 messa

我不知道为什么我在pdo中得到对非对象的成员函数fetch()的
调用。这真让我沮丧

$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();}

因为
$stmt->execute()
应该返回
布尔值

如果要使用fetch,应该从
$stmt

文档:

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

在本例中,您将尝试从布尔值获取数据

$result=$stmt->execute();
$message=$result->fetch();
只是需要改变

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

$\u GET['workspace']
的值是多少?
$\u GET['workspace']
返回一个ID,例如
356
只需使用
$stmt->execute()$message=$stmt->fetch()和检查谢谢!终于成功了!像这样
$message=$stmt->execute()->fetch()?$stmt->execute()$message=$stmt->fetch();