php - 在 bool 值上调用成员函数 fetch()

标签 php pdo

<分区>

我收到此错误:

Fatal error: Call to a member function fetch() on boolean in C:\xampp\htdocs\repo\generator\model\database.php on line 34

当我运行这段代码时:

    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 的 PHP 手册

PDO::query() returns a PDOStatement object, or FALSE on failure.

看起来您的查询失败了(在第 33 行),因此返回了一个 BOOLEAN (false),可能是因为在那个执行点,PDO 还没有连接到包含名为 article.在 connect() 方法中,我看到它试图连接到一个名为“generatordatabase”的数据库;确保在调用 createTable() 之前建立此连接,否则确保它包含一个名为“article”的表。

我建议添加更多代码示例,例如在触发错误之前调用此类/方法的代码。

关于php - 在 bool 值上调用成员函数 fetch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32696192/

相关文章:

php - PHP PDO 语句可以接受表名或列名作为参数吗?

javascript - JQuery 发布未在 PHP 文件中运行代码

php - 在 PHP 文档中使用 SQL 查询数据库中的 2 个不同表时遇到困难

php - 在 Mac OSX 上启用 PHP pdo_odbc 扩展

javascript - 在 PHP 和 Javascript 中解析错误和 JSON 意外结束

PHP 数据未使用 JQuery 追加到表中

php pdo连接到mssql实例

php - 如何消除 file() 返回的项目末尾的换行符?

php - 如何在php中的一页中使用2个数据库连接

PHP - 数组排序