2011-01-27 97 views
2

我使用sqlite_escape_string($ STR)準備以備將來使用SQL語句。調用未定義功能sqlite_escape_string()

然而,當我遷移我的代碼到新的服務器,它說:

調用未定義功能sqlite_escape_string()

似乎SQLite和一切工作在新的服務器,但我有錯誤即使是一個sqlite_open()。

不管怎麼說,我只需要逃避我的$海峽到sqlite的安全SQL statments,我逼債甚至需要編寫從PHP到SQLite的,所以一個

+0

頭腦SQLite和SQLITE3擴展之間的區別。您可以從命令行執行php -m以查看所有啓用的擴展。 – Gordon 2011-04-16 10:22:34

回答

0

我找到了回答我自己。

這是由於我的服務器是一個CentOS 5.4,和PHP的SQLite支持是不存在的。

同樣的情況下,應在版本5存在也。

看到在下面的鏈接的第一和第二最新評論:

http://www.php.net/manual/en/sqlite.installation.php

我解決它通過重新編譯我的PHP,並添加了sqlite.ini文件

1

這聽起來像SQLite的插件不支持PHP。在.php文件中寫入<?=phpinfo()?>,將其加載到服務器上,並查看加載的插件中是否提到了SQLite。

+0

我可以看到PDO_SQLITE PDO驅動程序的SQLite 3.x的\t啓用 PECL模塊版本\t 1.0.1 $編號:pdo_sqlite.c,V 1.10.2.6 2006年1月1日12時五十〇分12秒狙擊精通$ 的SQLite Library \t 3.3.6 – 2011-01-27 13:22:35

+0

phpinfo()是否在同一個文件中?檢查你的腳本和測試phpinfo()文件是否包含相同的php.ini設置。 – powtac 2011-01-27 13:45:55

0

您需要通過現在去除半結腸你PDO_SQLITE以取消延長= php_sqlite.dll線已啓用,sqlite_escape_string是sqlite的延伸和sqlite_pdo的功能將無法正常工作,直到php_sqlite啓用

0

對於那些誰最近升級到5.4 +,請注意,在PHP文檔說,這種方法是不可用5.4+

(PHP 5 < 5.4.0,PECL源碼> = 1.0.0)

所以你要麼需要手動編譯它,還是看PECL。