在被告知访问数据库的旧方法不正确之后。我现在开始使用PDO对象了。我正在设置一个简单的查询,但我没有得到任何结果。任何帮助或建议将不胜感激。它甚至没有将查询打印回给我。打开错误消息会有帮助吗?
<?php
//print_r(PDO::getAvailableDrivers());
$config['db'] = array( //This is the config array with the database details
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'website'
);
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']); //Instanciate an PDO Object
$query = $db->query("SELECT 'articles'.'title' FROM 'articles'");//running a query from the database
print_r($query); //printing a query
//while ($row = $query->fetch(PDO::FETCH_ASSOC)){
// echo $row['title'], '<br>';
//}
答案 0 :(得分:0)
我建议您阅读PDO以及错误处理和报告。
http://php.net/manual/en/pdo.error-handling.php 和 http://php.net/manual/en/pdo.errorinfo.php
他们应该向您展示如何轻松地从您的SQL查询中获取正确的错误,以便您可以看到最新的错误。
在你的情况下,你的查询是错误的应该是$query = $db->query("SELECT title FROM articles");
无需在select param部分中指定要从中拉出的tabl,也不需要单引号。你应该使用反向报价而不是单引号`
答案 1 :(得分:-1)
PHP手册:
<?php
function getFruit($conn) {
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
print $row['name'] . "\t";
print $row['color'] . "\t";
print $row['calories'] . "\n";
}
}
?>
表格或列名称不需要引号。
答案 2 :(得分:-1)
为什么不先准备好你的陈述然后再执行它们呢?
$stmt = $db->prepare($sql);
$stmt->execute();
$results = $stmt->fetchAll();