gpt4 book ai didi

php - 可以在类中获取数据但是返回时它只发送 bool 值 php PDO?

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:27 27 4
gpt4 key购买 nike

我正在尝试使用 PDO 构建数据库类,这是我第一次使用 pdo,所以在构建时我陷入了这个问题,我能够使用类创建并连接到数据库,但问题是当我尝试执行和获取时返回的数据错误说

Call to a member function fetch() on boolean

但是我可以在类中执行此获取操作只有当我尝试获取返回的数据并且我已经回显返回的数据时才会出现此问题 1

这是试图返回的函数(没有使用参数,只是使用了 dummy)

 public function init($query,$param =[]){
if(!$this->bConnected) { $this->Connect(); }
try{
$stmt = $this->pdo->prepare('SELECT * FROM business');
$stmt->execute();
return $stmt->execute();


}catch(Exception $e){
echo $e->getMessage();
}




}

调用类对象名是$myobj

 $stmt = $myobj->init('SELECT * FROM business',$value);

while($rows = $stmt->fetch(PDO::FETCH_ASSOC)){

echo( $rows['bs_name'] ." |" .$rows['bs_id']. "<br>");
}

这是相同的代码,唯一的区别是这是在类内部。工作没有任何错误

   public function init($query,$param =[]){
if(!$this->bConnected) { $this->Connect(); }
try{
$stmt = $this->pdo->prepare('SELECT * FROM business');
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
while($rows = $stmt->fetch(PDO::FETCH_ASSOC)){
echo( $rows['bs_name'] ." |" .$rows['bs_id']. "<br>");
}

}catch(Exception $e){
echo $e->getMessage();
}




}

最佳答案

您的方法返回 $stmt->execute() 的结果(一个表示语句执行成功/失败的 bool 值,不是查询结果)。 p>

$stmt = $this->pdo->prepare('SELECT * FROM business');
return $stmt->execute();

相反,为了使方法按照您使用的方式工作,您需要执行语句然后返回语句本身,而不是 execute() 的结果。

$stmt = $this->pdo->prepare('SELECT * FROM business');
$stmt->execute();
return $stmt;

关于php - 可以在类中获取数据但是返回时它只发送 bool 值 php PDO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54082359/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com