在布尔值上调用成员函数fetch() [英] Call to a member function fetch() on boolean
问题描述
我收到此错误:
致命错误:在布尔值中调用成员函数fetch() 第34行的C:\ xampp \ htdocs \ repo \ generator \ model \ database.php
Fatal error: Call to a member function fetch() on boolean in C:\xampp\htdocs\repo\generator\model\database.php on line 34
当我运行此代码时:
When I run this code:
class database
{
private $user = 'root';
private $pass = '';
public $pdo;
public function connect() {
try {
$this->pdo = new PDO('mysql:host=localhost; dbname=generatordatabase', $this->user, $this->pass);
echo 'Połączenie nawiązane!';
}
catch(PDOException $e) {
echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
}
}
public function createTable() {
$q = $this->pdo -> query('SELECT * FROM article');
while($row = $q->fetch()) {
echo $row['id'].' ';
}
$q->closeCursor();
}
}
?>
推荐答案
根据 PDO :: query
PDO :: query()返回PDOStatement对象,如果失败,则返回FALSE.
PDO::query() returns a PDOStatement object, or FALSE on failure.
您的查询似乎失败了(在第33行),因此返回了BOOLEAN(假),这可能是因为在执行该操作时,PDO尚未连接到包含名为 article 的表的数据库强>.在connect()方法中,我看到它尝试连接到名为"generatordatabase"的数据库.确保在调用createTable()之前已建立此连接,否则请确保它包含一个名为"article"的表.
It looks like your query is failing (on line 33) and thus returning a BOOLEAN (false), likely because at that point in execution, PDO has not connected to a database that contains a table called article. In the connect() method I see that it tries to connect to a db called 'generatordatabase'; ensure this connection is being made prior to calling createTable(), otherwise ensure that it contains a table called 'article'.
我建议添加更多代码示例,例如在触发错误之前调用此类/方法的代码.
I would recommend adding some more code examples, for instance the code that calls this class/method before the error is triggered.
这篇关于在布尔值上调用成员函数fetch()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!