我想在我的网站上显示数据库中的所有记录,这是一个PDO构建的网站。我希望它显示所有记录,以便您可以看到数据库中的内容。
连接在名为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 />';
}
}
}
答案 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,因为它们很容易指出未使用的变量