PHP Pdo:显示数据库外的记录

时间:2018-03-22 12:54:20

标签: php database mysqli pdo phpmyadmin

我想在我的网站上显示数据库中的所有记录,这是一个PDO构建的网站。我希望它显示所有记录,以便您可以看到数据库中的内容。

This is how my DB looks like

连接在名为config.php

的其他文档中设置
<?php

date_default_timezone_set('Europe/Amsterdam');

error_reporting(E_ALL & ~ E_DEPRECATED);
ini_set('display_errors', 'ON');

$CONFIG = array();
$CONFIG['root'] = '/home/tom/public_html';
$CONFIG['rootwebsite'] = '/home/tom/public_html';
$CONFIG['website'] = 'https://###';

$CONFIG['dbhost'] = 'localhost';
$CONFIG['dbuser'] = '####';
$CONFIG['dbpass'] = '####';
$CONFIG['dbdatabase'] = 'tom';
?>

这是我在php文档中使用的代码并尝试使用。问题是它不会在我的网站上显示任何内容(这是一个与我的网站不同的文件):

<?php

class Forum {

    private $dbh; //dbh = database handler.

    public function __construct($database) {
        $this->dbh = $database;
    }

    public function getForum() {
        $getTopic = $dbh->prepare("SELECT * FROM topics ORDER BY id DESC");
        $getTopic->execute();
        $topics = $getUTopic->fetchAll();
        foreach ($topics as $topic) {
            echo $topic['onderwerp'] . '<br />';
        }
    }

}

1 个答案:

答案 0 :(得分:0)

您没有调用正确的$connection变量。它应该是$this->dbh

$getTopic = $this->dbh->prepare("SELECT * FROM topics ORDER BY id DESC");

您也在execute()之后混合变量。你应该使用易于记忆的变量。

public function getForum() {
    try {
        $getTopic = $this->dbh->prepare("SELECT * FROM topics ORDER BY id DESC");
        $getTopic->execute();
        $topics = $getTopic->fetchAll();
        foreach ($topics as $topic) {
            echo $topic['onderwerp'] . '<br />';
        }
    } catch (PDOException $pdoEx) {
        echo $pdoEx->getMessage();
        exit;
    } catch (Exception $ex) {
        echo $ex->getMessage();
        exit;
    }
}

此外,由于您没有将任何变量传递给查询,因此无需使用prepare()。只需拨打query()即可。

对于错误报告添加,

error_reporting(E_ALL); #place at the top of the script

另外你应该考虑使用像PHPstorm或Netbeans这样的适当的IDE,因为它们很容易指出未使用的变量

根据@adpro的建议,这里有link,以帮助调试