我的PHP安装没有SQLite-Functionality作为基本安装,所以没有sqlite_ *函数可用。
是否有PHP库(PHP代码)可以访问SQLite数据库而无需在PHP中安装任何插件?
(我无法更改服务器配置)
实际上我只需要基本支持(仅限SELECT语句)
基本上我正在寻找一个纯PHP的SQLite驱动程序,就像https://github.com/kripken/sql.js一样,它是SQLite驱动程序的纯JS实现。
答案 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
访问希望有所帮助!