2012-12-26 68 views
1

我正在嘗試使用PHP和sqlite。我已經加載了sqlite3和pdo_sqlite3庫(根據php -m),php.ini獲取庫添加,但我仍然得到致命的錯誤,該函數(無論是sqlite_open()或sqlite_versioninfo())isn沒有發現。 phpinfo()顯示兩個庫都已加載。那麼爲什麼我不能使用它們?爲什麼PHP在運行腳本時不會看到sqlite庫?

關於我的設置一些信息:

我在Debian跑,我跑的Apache2和PHP 5.4.4-4。我不記得我是如何安裝PHP(顯然不是通過apt-get),但它是通過Apache啓動的。

php -m輸出:

根@ NS:〜#PHP -m [PHP模塊] bcmath時BZ2日曆核心CTYPE捲曲 日期DBA DOM EREG EXIF FileInfo的過濾器的ftp gettext的散列的iconv imagick JSON的libxml MBSTRING mhash的mysql mysqli的OpenSSL的了pcntl PCRE PDO PDO_MYSQL PDO_SQLITE的Phar POSIX的反思會議shmop的SimpleXML 肥皂插座SPL sqlite3的SSH2標準sysvmsg SYSVSEM SYSVSHM 標記者WDDX XML的XMLReader的XmlWriter拉鍊zlib的

[Zend Modules]

確切的錯誤文本是PHP Fatal error: Call to undefined function sqlite_libversion() in [file] on line 14,它通過命令行和Web服務器都發生。

如果我想要添加其他東西,我會在這裏添加它。

+0

致命錯誤來自通過命令行或通過網絡服務器運行的腳本? – goat

+0

@rambocoder我更新了我的問題。它通過命令行和網絡服務器發生。 – demize

回答

1

使用sqlite擴展名中的功能,但啓用了單獨的sqlite3擴展名。

和pdo_sqlite3僅適用於pdo。

+0

好吧,這看起來像解決方案。我想我必須安裝sqlite,我目前對OO的東西不感興趣。謝謝! – demize

+0

或者我不得不把它搞砸,只是使用sqlite3,它已經安裝了,PECL告訴我sqlite已被PHP取代,而PHP說它回到了PECL。所以是的,sqlite3看起來是更好的選擇。 – demize

+0

考慮pdo,除非在sqlite3擴展中有一些東西,你真的需要pdo不允許你訪問,因爲pdo是php的標準,並且它工作得很好。我在sqlite3中看到的唯一的事情是busyTimeout()和loadExtension() – goat

0

如果你正在用php-fpm運行php,並且在php-fpm啓動後編譯了庫,那麼你應該重新啓動php-fpm,然後新的庫會很有用。

相關問題