查询不返回任何内容。我如何输入测试以确保我知道它正在工作?

时间:2013-02-04 13:15:33

标签: php

在被告知访问数据库的旧方法不正确之后。我现在开始使用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>';
//}

3 个答案:

答案 0 :(得分:0)

我建议您阅读PDO以及错误处理和报告。

http://php.net/manual/en/pdo.error-handling.phphttp://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();
相关问题