我正在转换一个旧的mysql_X站点与PDO一起工作,到目前为止,这么好(我认为)。然而,我对计算查询结果的可靠性有疑问。使用count()来计算来自PHP中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有没有明显的错误?谢谢您的帮助!
您是否试过'num_rows'? – Kermit
我还没有试过num_rows。我已经尝试过rowCount,它也可以工作,但我已经读过,不建议在SELECT查询中使用它,因为结果可能并不总是可靠的。 – Marty