PHP PDO returns 真

PHP PDO returns true

我试图从我的数据库中提取一些数据,但返回了一个布尔值(如预期的那样),但是当我尝试 ->fetch() 的变体时,我得到错误 Fatal error: Uncaught Error: Call to a member function fetch() on bool.

不知何故,->execute();-函数似乎保存了 bool 而不是对象 - 我不确定为什么。我想我对自己的代码视而不见了?

代码

<?php
$cc = $pdo->prepare("SELECT country FROM quarter WHERE company_id = ? GROUP BY 1 ORDER BY country ASC")->execute([$_GET["id"]]);
#var_dump($cc);
var_dump($cc->fetch());
var_dump($cc->fetchAll(PDO::FETCH_COLUMN));
?>

预期响应

country
GB
NO

实际回复

Fatal error: Uncaught Error: Call to a member function fetch() on bool in [..]

execute()方法returns bool while prepare() returns对象

你应该使用对象本身的fetch()方法

$cc = $pdo->prepare("SELECT country FROM quarter WHERE company_id = ? GROUP BY 1 ORDER BY country ASC");

$cc->execute([$_GET["id"]]);
#var_dump($cc);
var_dump($cc->fetch());