我有一个PHP安装,没有SQLite功能作为基本安装,所以没有sqlite_ *函数可用。是否有可能使用SQLite数据库而不使用sqlite函数?
有没有PHP库(PHP代码),可以访问SQLite数据库,而无需安装任何插件到PHP?
(我不能更改服务器配置)
其实我只需要基本的支持(仅限报表)
基本上我正在寻找一个纯PHP的SQLite司机很像https://github.com/kripken/sql.js被SQLite驱动程序的纯JS实现。
我有一个PHP安装,没有SQLite功能作为基本安装,所以没有sqlite_ *函数可用。是否有可能使用SQLite数据库而不使用sqlite函数?
有没有PHP库(PHP代码),可以访问SQLite数据库,而无需安装任何插件到PHP?
(我不能更改服务器配置)
其实我只需要基本的支持(仅限报表)
基本上我正在寻找一个纯PHP的SQLite司机很像https://github.com/kripken/sql.js被SQLite驱动程序的纯JS实现。
我没有在google上找到任何普通的php sqlite驱动搜索。 我试图得到的东西梨但SQLite的MDB2驱动程序中进行使用SQLite PHP扩展的工作:
[email protected]:~# pear install MDB2_Driver_sqlite
pear/MDB2_Driver_sqlite requires PHP extension "sqlite"
No valid packages found
install failed
我安装了PHP-sqlite的梨模块去确定后:
[email protected]:~# 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源码包装我发现有这样的事情:
if (!function_exists('sqlite_open')) return false;
所以,我想没有人用PHP编写的纯sqlite的司机呢。抱歉。
不同的问题是,如果它足够聪明,其实这样做...
我认为,更好的办法是导入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;
这样做的SQLite没有这些PHP自己的sqlite的功能,所以...
也许我有点晚了我的答案,但我敢肯定,这可以帮助其他用户寻找这样的问题。 SQLite是一个特殊的软件,有时它可以代替MySQL或其他经典的数据库。 (让我们考虑低流量的网站..) 不幸的是,它是作为PHP扩展提供的,所以当依赖第三方廉价主机提供商时可以禁用服务器端。这就是为什么我开始开发PHPFileDB,一个完整的平面文件数据库,使用PHP编写,完全支持SQL语法(我的目标是获得与基于MySQL的框架的完全兼容)
很明显,它是开源的,可以在https://github.com/morepaolo/PHPFileDB
希望能对您有所帮助!
这个安装几岁?听起来你可以做更新你的PHP安装给我,SQLite已成为PHP核心的一部分yonks ... – DaveRandom 2012-04-18 12:00:11
你有权访问'PDO'?你可以使用'phpinfo()'来检查。在字符串'sqlite'或'sqlite2'中搜索该函数的输出。 – RikkusRukkus 2012-04-18 12:06:22
它是PHP5.3,但没有将SQLite模块编译进去。我无法更新它。它基本上是不可用的,因为文件系统是只读的,而SQLite-Databases没有什么意义,但是因为我只是在阅读...... - 是的,我有权访问PDO,但不能访问PDO中的sqlite或sqlite2。 – bardiir 2012-04-18 12:26:54