我正在将一个旧的 mysql_X 站点转换为使用 PDO,到目前为止,一切都很好(我认为)。但是,我对计算查询结果的可靠性有疑问。
目前,我的一切都是这样的(我已经删除了 try / catch 错误代码以使其更易于阅读):
$stm = $db->prepare("SELECT COUNT(*) FROM table WHERE somevar = '1'");
$stm->execute();
$count = $stm->fetchColumn();
if ($count > 0){
$stm = $db->prepare("SELECT * FROM table WHERE somevar = '1'");
$stm->execute();
$result = $stm->fetchAll();
}
这样做可能会出现愚蠢的问题,如果有的话,我邀请您告诉我,但我的问题实际上是关于减少数据库查询。我注意到,如果我删除第一个语句,自行运行第二个语句,然后使用 PHP 的 count() 来计算结果,我似乎仍然可以获得可靠的行数,只有一个查询,如下所示:
$stm = $db->prepare("SELECT * FROM table WHERE somevar = '1'");
$stm->execute();
$result = $stm->fetchAll();
$count = count($result);
if ($count > 0){
//do whatever
}
这样做有什么陷阱吗?它可靠吗?我的 PDO 中是否有任何明显的愚蠢错误?谢谢您的帮助!