【问题标题】:What is the difference between PHP SQLite3 class and sqlite_open?PHP SQLite3 类和 sqlite_open 有什么区别?
【发布时间】:2016-02-24 23:37:31
【问题描述】:

我一直在尝试用 PHP 中的 SQLite 创建一个数据库,如下所示:

$db = new SQLite3("users.db");

– 但我收到了这个错误:

致命错误:找不到类“SQLite3”

——虽然,这行得通:

if ($db = sqlite_open('d', 0666, $e)) { 
    sqlite_query($db, 'CREATE TABLE foo (bar varchar(10))');
    sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
    $result = sqlite_query($db, 'select bar from foo');
    var_dump(sqlite_fetch_array($result)); 
    echo($result);
} else {
    die($sqliteerror);
}

– 有什么区别?我宁愿使用class,但为什么不能呢?

【问题讨论】:

    标签: php database class sqlite


    【解决方案1】:

    也许你的 PHP

    SQLite 函数,根据官方文档中的 cmets:

    仅适用于 sqlite 版本 2 及更低版本的 sqlite 数据库。这些不能用于 sqlite3 数据库。

    SQLite3 适用于 PHP >= 5.3 并且 - 显然 - 适用于 SQLite 3。

    请注意,您还可以使用PDO class 与 SQLite 数据库进行交互,我认为这是最好的解决方案。

    【讨论】:

    • 请提供该报价的链接?
    • 我不确定这是否重要,但此评论在官方文档中有 -6 票。我们还应该相信它吗?
    • 我不知道。 Here 报告了一些问题。您必须尝试打开 sqlite3 dbfile 才能查看行为。顺便说一句,为什么不是 PDO?
    • 我会考虑 PDO。我真的不知道如何使用它,但我可能会弄清楚。只是想知道为什么它更好......
    • 肯定不是sqlite。自 php 5.4 起已将其删除,因此当您更新 php(或在另一台服务器上复制您的代码)时,您将不得不更新代码。
    猜你喜欢
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2021-12-05
    • 2018-11-18
    • 1970-01-01
    • 2016-03-20
    相关资源
    最近更新 更多