我是PDO新手,我正在尝试执行查询。
$stmt = $dbh->prepare('SELECT * FROM tbmeseros WHERE alias_mesero=:alias AND res_mesero=:rest');
$stmt->execute(array(':alias'=>$alias,
':rest'=>$rest));
$row = $stmt->fetch(PDO::FETCH_ASSOC);
if( ! $row)
{
//to do when the query is empty
}
else if ($row)
{
//to do when the query is not empty
}
执行查询,但不满足条件。
我需要的是,当查询没有结果时,下一步必须//在查询为空时执行。
但是查询不是空的,而是条件:
if( ! $row)
{
//to do when the query is empty
}
已执行......
欢迎任何帮助。谢谢。
编辑问题
我已更改了我的代码,现在正在运行。 这是我的新代码:
$sql = 'SELECT alias_mesero
FROM tbmeseros
WHERE alias_mesero = :alias AND rest_mesero = :rest';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':alias'=> $alias, ':rest' =>$rest));
$red = $sth->fetchAll();
//echo count($red);
if(count($red)==0)
{
//to do if query results are 0
}
else
{
// to do if query results are >0
}
答案 0 :(得分:0)
使用fetchAll将结果检索为数组会更快,并在其上执行count
以查看它是否为空。您似乎假设空结果集不是假的。
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
if(count($rows)==0) {
//to do when the query is empty
} else {
//to do when the query is not empty
}