我有一个没有 SQLite-Functionality 作为基础安装的 PHP 安装,所以没有 sqlite_* 函数可用。
是否有无需在 PHP 中安装任何插件即可访问 SQLite 数据库的 PHP 库(PHP 代码)?
(我无法更改服务器配置)
事实上,我只需要基本支持(仅限 SELECT 语句)
基本上我正在寻找一个纯 PHP SQLite 驱动程序,就像https://github.com/kripken/sql.js是 SQLite 驱动程序的纯 JS 实现。
我有一个没有 SQLite-Functionality 作为基础安装的 PHP 安装,所以没有 sqlite_* 函数可用。
是否有无需在 PHP 中安装任何插件即可访问 SQLite 数据库的 PHP 库(PHP 代码)?
(我无法更改服务器配置)
事实上,我只需要基本支持(仅限 SELECT 语句)
基本上我正在寻找一个纯 PHP SQLite 驱动程序,就像https://github.com/kripken/sql.js是 SQLite 驱动程序的纯 JS 实现。
不同的问题是它是否足够聪明才能真正做到这一点......
我认为更好的方法是将 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,所以......
任何 php 库要么是用纯 php 编写并使用一些底层函数,要么是一个模块,应该安装。
因此,唯一的选择是为该模块获取 C 代码并将其重写为 php。AFAIK,唯一需要的低级函数,正在使用网络套接字,它们在 php.ini 中可用。
也许我的回答有点晚了,但我相信它对寻找这类问题的其他用户会有所帮助。SQLite 是一款出色的软件,有时它可以替代 MySQL 或其他经典使用的数据库。(让我们考虑一下低流量网站。)不幸的是,它可以作为 PHP 扩展使用,因此在依赖第三方廉价托管服务提供商时可以禁用服务器端。这就是我开始开发 PHPFileDB 的原因,这是一个用 PHP 编码并完全支持 SQL 语法的完整平面文件数据库(我的目标是获得与基于 MySQL 的框架的完全兼容性)
显然,它是开源的,可以在https://github.com/morepaolo/PHPFileDB访问
希望对您有所帮助!
我在谷歌上没有找到任何普通的 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 驱动程序。对不起。