我有一個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