PDO查询与params

时间:2014-06-09 17:56:21

标签: php mysql pdo

我是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
}

1 个答案:

答案 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
}