Ste*_*n S 2 php mysql pdo pdostatement
我正在尝试在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';
}
Run Code Online (Sandbox Code Playgroud)
Sam*_*tch 21
使用PDO的errorinfo()功能找出原因.
if( ! $sth = $db->query("SELECT * FROM titles ORDER BY RAND() LIMIT 1") ) {
die(var_export($db->errorinfo(), TRUE));
}
Run Code Online (Sandbox Code Playgroud)
晚更新
为了使我的旧答案更好,设置PDO以在错误上抛出异常比检查每个函数返回更容易管理.
$dbh = new PDO($connstr, $user, $pwd);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)
或者,更简洁:
$dbh = new PDO($connstr, $user, $pwd, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12566 次 |
| 最近记录: |