【发布时间】:2016-03-14 19:07:44
【问题描述】:
我正在编写一个应该可以简化我的工作的 CRUD 类。 现在我正试图让它与“SQlite”和“MySQL”一起工作。 MySQL 的 CRUD 可以正常工作,但是自从我尝试从 SQLite 数据库中获取数据后,这让我的生活变得艰难:)。
下面的代码是用于从给定表中获取所有内容的有效 MySQL CRUD 函数。
public function getAll($table){
$stmt = $this->db->prepare("SELECT * FROM $table");
$stmt->execute();
if($stmt->rowCount()){
$item = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $item;
}
return false;
}
如果我在 SQLite 数据库上尝试上面的函数,它不会返回任何内容。
但是,当我更改代码时,它确实返回了请求的项目。 下面的函数适用于 SQLite 数据库,但验证很少。
public function getAll($table){
$stmt = $this->db->prepare("SELECT * FROM $table");
$stmt->execute();
$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $items;
}
所以我的结论是 rowCount() 函数不适用于 SQLite。 我该如何解决这个问题,以便 SQLite CRUD 首先查看是否真正返回了任何内容? 如果它被退回,我可以退回这些物品。 如果行为空,则应返回 false 。
希望你们能理解我想说的。
最好的问候
【问题讨论】: