在boolean上调用成员函数fetch()

mar*_*nos 10 php boolean fetch

我收到此错误:

致命错误:在第34行的C:\ xampp\htdocs\repo\generator\model\database.php中调用boolean上的成员函数fetch()

当我运行此代码时:

    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();
        }
    }

    ?>
Run Code Online (Sandbox Code Playgroud)

ajm*_*way 10

根据PDO :: query的PHP手册

PDO :: query()返回PDOStatement对象,失败时返回FALSE.

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

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