是否可以在没有sqlite函数的情况下将SQLite数据库与PHP一起使用?

时间:2012-04-18 11:52:10

标签: php sqlite

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

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

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

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

4 个答案:

答案 0 :(得分: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,所以......

答案 1 :(得分:1)

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

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

答案 2 :(得分: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驱动程序。遗憾。

答案 3 :(得分:0)

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

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

访问

希望有所帮助!