mySQL PDO 的新功能。我在这里阅读了其他答案并阅读了教程,终于开始尝试了。问题是我似乎无法输出数据。因此,有人可以评估我的代码以确保它是正确的吗?另外,我用来查询数据库的系统是否高效、干净和安全?谢谢
$pdo --- the correct connection information is in this line but has been removed ---
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// SELECT sql query
try {
$thedate='2013-06-03';
$rotation=1;
$stmt = $pdo->prepare("SELECT * FROM sched_main_2013 WHERE thedate=:thedate AND rotation=:rotation");
$stmt->bindValue(':thedate', $thedate, PDO::PARAM_STR);
$stmt->bindValue(':rotation', $rotation, PDO::PARAM_INT);
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
}
catch(PDOException $ex) {
echo $ex->getMessage();
}
while($rows = $stmt->fetch()) {
echo $rows['thedate'] . "\n";
echo $rows[assignedRad] . "\n";
echo $rows[rotation] . "\n";
}
// close the connection
$pdo = null;
此代码不输出任何内容。没有错误。什么都没有。
顺便说一句,当我手动运行 mySQL 语句时,该表存在并且 SELECT * FROM 工作正常,因此该查询确实存在数据。
最佳答案
尝试
while($rows = $stmt->fetch()) {
echo $rows['thedate'] . "\n";
echo $rows[assignedRad] . "\n";
echo $rows[rotation] . "\n";
}
到
while($rows = $stmt->fetch()) {
echo $rows['thedate'] . "\n";
echo $rows['assignedRad'] . "\n";
echo $rows['rotation'] . "\n";
}
调试 01
也许你可以试试这个来测试你是否真的从数据库接收到任何数据
print_r($stmt->fetchAll());
代替你的 while 循环
调试 02
尝试您坚信不会出现 SQL 错误的简单查询,例如:
SELECT * FROM sched_main_2013
没有任何值绑定(bind)。
调试 03
使用 WHERE 条件尝试另一个查询,但没有绑定(bind)
SELECT * FROM sched_main_2013 WHERE thedate='2013-06-03' AND rotation=1
关于php - 如何使用 mySQL PDO 输出数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889212/