首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite诉MySQL ->rowCount()

SQLite诉MySQL ->rowCount()
EN

Stack Overflow用户
提问于 2015-12-09 13:27:36
回答 1查看 1.9K关注 0票数 0

我在修一门CRUD课程,这门课应该减轻我的工作负担。现在,我正试图使它与"SQlite“和"MySQL”一起工作。MySQL的CRUD没有问题,但自从我试图从SQLite数据库中获取数据以来,这让我的生活变得很艰难:)。

下面的代码是工作的MySQL CRUD函数,用于从给定的表中获取所有内容。

代码语言:javascript
复制
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数据库,但验证非常少。

代码语言:javascript
复制
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。

希望你们能理解我想说的。

诚挚的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-09 13:34:06

rowCount()在MySQL和其他几个方面的使用是非常安全的。对于像SQLite这样的可移植应用程序,它不能很好地工作。

来自手册

如果关联的PDOStatement执行的最后一条SQL语句是SELECT语句,则某些数据库可能返回该语句返回的行数。然而,并不是所有数据库都有这种行为的保证,便携式应用程序也不应依赖这种行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34180011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档