4

我有一个没有 SQLite-Functionality 作为基础安装的 PHP 安装,所以没有 sqlite_* 函数可用。

是否有无需在 PHP 中安装任何插件即可访问 SQLite 数据库的 PHP 库(PHP 代码)?
(我无法更改服务器配置)

事实上,我只需要基本支持(仅限 SELECT 语句)

基本上我正在寻找一个纯 PHP SQLite 驱动程序,就像https://github.com/kripken/sql.js是 SQLite 驱动程序的纯 JS 实现。

4

4 回答 4

3

一切皆有可能

不同的问题是它是否足够聪明才能真正做到这一点......

我认为更好的方法是将 sqlite 数据库导入 mysql 或其他一些可用的数据库。好的,这仍然需要sqlite安装...

这是如何完成的:

class ExtremelySimpleAndPowerfulSQLite {
    private $database_file;
    public function __construct( $filename ) {
        $this->database_file = $filename;
    }

    public function sqlite_query( $sql ) {
        ob_start();
        passthru("sqlite ".$this->database_file." '$sql'", $result);
        if ($result <> 0) {
            ob_end_clean();
            return false;
        }
        $sqlite_result = ob_get_contents();
        ob_end_clean();
        return $sqlite_result;
    }
}

$sqlite = new ExtremelySimpleAndPowerfulSQLite("test.db");

// It works, huh...
echo $sqlite->sqlite_query('select * from table');

if ($foobar = $sqlite->sqlite_query('select * from mytable'))
    echo $foobar;

这确实没有那些 php 自己的 sqlite 函数的 sqlite,所以......

于 2012-04-22T02:46:39.303 回答
1

任何 php 库要么是用纯 php 编写并使用一些底层函数,要么是一个模块,应该安装。

因此,唯一的选择是为该模块获取 C 代码并将其重写为 php。AFAIK,唯一需要的低级函数,正在使用网络套接字,它们在 php.ini 中可用。

于 2012-04-18T12:34:51.287 回答
0

也许我的回答有点晚了,但我相信它对寻找这类问题的其他用户会有所帮助。SQLite 是一款出色的软件,有时它可以替代 MySQL 或其他经典使用的数据库。(让我们考虑一下低流量网站。)不幸的是,它可以作为 PHP 扩展使用,因此在依赖第三方廉价托管服务提供商时可以禁用服务器端。这就是我开始开发 PHPFileDB 的原因,这是一个用 PHP 编码并完全支持 SQL 语法的完整平面文件数据库(我的目标是获得与基于 MySQL 的框架的完全兼容性)

显然,它是开源的,可以在https://github.com/morepaolo/PHPFileDB访问

希望对您有所帮助!

于 2014-02-24T12:40:02.663 回答
0

我在谷歌上没有找到任何普通的 php sqlite 驱动程序搜索。我试图从梨中得到一些东西,但是 sqlite mdb2 驱动程序利用 sqlite php 扩展来工作:

root@blackbigone:~# pear install MDB2_Driver_sqlite
pear/MDB2_Driver_sqlite requires PHP extension "sqlite"
No valid packages found
install failed

在我安装 php-sqlite 之后,pear 模块就正常了:

root@blackbigone:~# pear install MDB2_Driver_sqlite
downloading MDB2_Driver_sqlite-1.4.1.tgz ...
Starting to download MDB2_Driver_sqlite-1.4.1.tgz (30,921 bytes)
.........done: 30,921 bytes
install ok: channel://pear.php.net/MDB2_Driver_sqlite-1.4.1

阅读代码,我发现的任何 php sqlite 包装器都有这样的内容:

if (!function_exists('sqlite_open')) return false;

所以,我认为还没有人用 PHP 编写过纯 sqlite 驱动程序。对不起。

于 2012-04-22T00:34:59.787 回答