php – PDO:调用非对象的成员函数fetch()?
发布时间:2020-12-13 17:35:40 所属栏目:PHP教程 来源:网络整理
导读:这个问题在这里已经有一个答案: My PDO Statement doesn’t work1 我只是尝试PDO,我得到这个错误,致命错误:调用一个非对象的成员函数fetch(),但它不是已经在$this- db对象上? class shoutbox { private $db; function __construct($dbname,$username,$pas
这个问题在这里已经有一个答案:>
My PDO Statement doesn’t work1
我只是尝试PDO,我得到这个错误,致命错误:调用一个非对象的成员函数fetch(),但它不是已经在$this-> db对象上? class shoutbox { private $db; function __construct($dbname,$username,$password,$host = "localhost" ) { # db conections try { $this->db = new PDO("mysql:host=".$hostname.";dbname=".$dbname,$password); } catch(PDOException $e) { echo $e->getMessage(); } } function getShouts() { $sql_shouts = $this->db->query('SELECT shoutid,message,pmuserid,ipadress,time FROM shouts WHERE pmuserid == 0'); return $sql_shouts->fetch(PDO::FETCH_OBJ); } }
仔细阅读
PDO::query的文档,特别是“返回值”部分:
重要的一点是“失败失败”. FALSE不是一个对象,所以调用 – > fetch()是一个坏消息. 错误可能是由于您使用“==”比较运算符.在SQL中,它只是“=”. 你应该测试$sql_shouts不是false,然后做一些聪明的错误,如果有一个: <?PHP $sql_shouts = $this->db->query('...'); if ($sql_shouts === false){ $errorInfo = $this->db->errorInfo(); //log the error or take some other smart action } return $sql_shouts->fetch(PDO::FETCH_OBJ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |