在转到PDO之前,我用
$result = mysqli_query ($conn, 'SELECT * FROM mytable WHERE id = 54');
if (mysqli_num_rows($result) >= 1) { ... }若要检查查询是否返回,至少要返回一个结果。
现在,在PDO中,我在许多这样的问题(比如get number of rows with pdo)中看到,在PDO中没有直接函数来检查查询的行数(有关于使用of__$result->rowCount();的警告),而是像执行额外的查询那样的解决方案:
SELECT count(*) FROM mytable WHERE id = 54但这可能是我想要的太多了:事实上,我不需要确切的行数,但只要至少有一个行。
如何检查准备好的语句查询是否至少返回一行?
$stmt = $db->prepare('SELECT * FROM mytable WHERE id = 54');
$stmt.execute();
... // HOW TO CHECK HERE?发布于 2015-03-30 15:31:25
$stmt = $db->prepare('SELECT * FROM mytable WHERE id = 54');
$stmt.execute();
... // HOW TO CHECK HERE?太简单了,你已经快到了。
$stmt = $db->prepare('SELECT * FROM mytable WHERE id = 54');
$stmt.execute();
$result = $stmt->fetchAll(); // Even fetch() will do
if(count($result)>0)
{
// at least 1 row
}如果您只想要“是”/“否”答案,那么还应该向查询中添加一个LIMIT 1,这样mysql就不会浪费查找更多行的尝试。
https://stackoverflow.com/questions/29350028
复制相似问题