set_magic_quotes_runtime()於 PHP5.3後棄用
在 PHP.net 官方文件中有提到,set_magic_quotes_runtime()於PHP5.3已經棄用,雖然不會造成Fatal error而中斷程式,但會發送E_DEPRECATED的過時警告
Deprecated: Function set_magic_quotes_runtime() is deprecated
替代方案:
set_magic_quotes_runtime(0);
意思同上,以下列方法替代棄用的set_magic_quotes_runtime()
ini_set("magic_quotes_runtime", 0);
這一段主要是修改 php.ini 中 magic_quotes_runtime 參數
用以將SQL語句自動加上跳脫字元反斜線,以防止SQL注入隱碼攻擊(SQL injection)
PHP 5.4起,使用此函數會拋出Fatal error,終止程式運行
Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime()
相容性:
有時在寫PHP並不一定確定針對某一版本去寫,另外目標主機環境百百款,PHP版本也很不固定,每次要針對版本再改就會很麻煩,我覺得相容性就變得很重要,解決方法如下:
把舊版本程式有使用到
set_magic_quotes_runtime(0);
都改為就可以了
ini_set("magic_quotes_runtime", 0);
另外在前面加上@,加上@的意思就是強制不拋錯誤訊息,如下
@set_magic_quotes_runtime(0);
不過我覺得還是不要使用@強制不拋錯誤訊息的作法,
因為有很多時候Debug還是需要錯誤訊息,
當然還有其他方法,其他方法可參考官網文件,