我正在尝试在PHP中学习和使用PDO。我在query()方法中遇到了一个问题。
我正在尝试使用$sth = $db->query("SELECT * FROM titles ORDER BY RAND() LIMIT 1");
随机选择网站的标题,但是由于某种原因,$sth
始终是错误的。当我使用prepare()
和execute()
时,它可以工作,但是我正在尝试查找query()
中的问题。
这是我的整个功能,被称为:
function getTitle($db)
{
if($db)
{
$db->exec("USE " . $dbsite);
$sth = $db->query("SELECT * FROM titles ORDER BY RAND() LIMIT 1");
$title = $sth->fetch(PDO::FETCH_ASSOC);
$db->exec("UPDATE titles SET count = count + 1 WHERE id = " . $title['id']);
return $title['title'];
}
else
return 'Home - Database Offline';
}
为了使我的旧答案更好,将PDO设置为错误的异常比检查每个功能返回更容易管理。
$dbh = new PDO($connstr, $user, $pwd);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
或更简单的:
$dbh = new PDO($connstr, $user, $pwd, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);