PDO - 查询不返回结果 - 输出为空,不确定原因

时间:2014-05-25 14:39:29

标签: php mysql pdo

尝试执行我的第一个简单的PDO查询。什么都没有输出。

mySQL表中的字段确实充满了内容,它们不是空白的。 连接数据库正在运行。

我的输出如下:

Connected to database.
dfsdfs 1object(PDO)#2 (0) { }

这些代码行未输出:

        PDO::errorInfo()
    echo "Performing a select: <br>";
    print_r($row);  

这些代码行也没有输出:

    <h2><?php echo $row['articleTitle']; ?></h2>
    <?php echo $row['articleBody']; ?>

我的代码:

<?php

/*** mysql hostname ***/
$hostname = 'removed';
/*** mysql username ***/
$username = 'removed';
/*** mysql password ***/
$password = 'removed';
function testdb_connect ($hostname, $username, $password){
$dbh = new PDO("mysql:host=$hostname;dbname=removed", $username, $password);
return $dbh;
}

try {
$dbh = testdb_connect ($hostname, $username, $password);
echo 'Connected to database';
} catch(PDOException $e) {
echo $e->getMessage();
}
$dbh = testdb_connect ($hostname, $username, $password);

$id=$_GET[id];
echo 'dfsdfs '.$id;
var_dump($dbh);
$sql="SELECT * FROM 'radiologyArticles' WHERE 'id' = :id";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':id', $id);
$stmt->execute();
    if (!$stmt) {
      echo "\nPDO::errorInfo():\n";
      print_r($dbh->errorInfo());
    }
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  
echo "Performing a select: <br>";
print_r($row);                                  
?>
<section>
    <header>
        <h2><?php echo $row['articleTitle']; ?></h2>
    </header>
    <p>
    <?php echo $row['articleBody']; ?>
    </p>
</section>
<?php
}
// close the PDO connection
$link = null;
?>

1 个答案:

答案 0 :(得分:1)

我不确定为什么你没有看到任何错误,但这一行是错误的:

$sql="SELECT * FROM 'radiologyArticles' WHERE 'id' = :id";

您不应对表名或列名使用引号(单引号或双引号)。如果你需要引用它们(例如保留字),你需要反引号:

$sql="SELECT * FROM `radiologyArticles` WHERE `id` = :id";

要确保PHP在遇到问题时抛出异常,您可以将连接字符串更改为:

$dbh = new PDO("mysql:host=$hostname;dbname=removed", $username, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));