【发布时间】:2014-12-09 21:13:49
【问题描述】:
我有一个关于 php / pdo 和 sqlite 的问题。我已经将一些代码从 mysql 后端移植到了 sqlite 后端。我在这个项目中使用了 rowCount() alot。
在我原来的 Mysql 应用程序中,我这样做了:
$stmt = $db->query("SELECT id FROM table where id = $id ");
$rc = $stmt->rowCount();
if ($rc == 1) {
// do something
}
文档说此方法仅用于从 UPDATE、INSERT、DELETE 查询中返回受影响的行,使用 PDO_MYSQL 驱动程序(仅此驱动程序)您可以获得 SELECT 查询的行数。
那么,如何使用 sqlite 后端实现相同的目标?
这就是我最终的做法:
$stmt = $db->query("SELECT count(id) as cnt FROM table where id = $id ");
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($row['cnt'] == "1") {
// do something
} else {
return false;
}
}
}
我正在寻找一个更优雅的解决方案,同时实现与 rowCount() 相同的功能。
【问题讨论】:
-
由于您仍在使用 PDO,您仍然可以使用
rowCount()。 -
Row count with PDO的可能重复