PHP 解決 Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

php 版本,5.25.35.45.5,直接上5.5,但是程式出現如下錯誤:
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in….
官方明確說明,PHP 5.5.0中不推薦使用此擴展,它在PHP 7.0.0中被刪除。
而應該使用MySQLi或PDO_MySQL擴展。
當然,還沒有棄用,表示還可以用,是還可以苟且偷生一陣子,不過在PHP7就正式被移除囉,這要注意一下,話雖如此,早晚都要換的拉,不妨看一下解決方法吧。

解決方法一:

停用PHP顯示錯誤訊息

這絕對不是個好方法,我個人是不推薦使用,雖然這方法一勞永逸,但在開發PHP時,你將會知道錯誤訊息有多麼美好,Debug時才不會像無頭蒼蠅般,除非程式已經在一個很穩定的階段,不然非必要,不要關閉全部錯誤訊息,還是留給程式可以去設定是否顯示錯誤訊息的彈性。
以下介紹幾種PHP停用錯誤訊息的方法:

在PHP文件中加入,停用PHP錯誤訊息

ini_set("display_errors", "Off");
error_reporting(0);

如果還是出現錯誤訊息,請試下列方法

在.htaccess檔案中加入下面這一行 ( Apache專用 )

php_flag display_errors Off

如果還是出現錯誤訊息,請試下列方法

在 PHP.ini 中找到 display_errors 這一行,沒這一行則添加,將值改為off。

display_errors = Off

解決方法二:

PHP排除特定錯誤層級

如果短期間沒打算繼續升級的話,還是可以在PHP5.5 使用 mysqli_connect() ,但停用所有錯誤訊息好像又太極端,下面這方法可以設定錯誤訊息級別,隱藏某些特定的錯誤級別,選擇排除顯示某指定錯誤級別,排除的錯誤級別將不會顯示在錯誤訊息上,排除E_DEPRECATED,mysql_connect()就可以繼續撐拉。

以下例子顯示所有錯誤,除了下列這幾個錯誤級別:

E_DEPRECATED棄用
E_NOTICE注意
E_WARNING警告
E_STRICT嚴格
ini_set("display_errors", "On"); 
ini_set("error_reporting", "E_ALL ^E_DEPRECATED ^E_NOTICE ^E_WARNING ^E_STRICT"); 
error_reporting(E_ALL ^E_DEPRECATED ^E_NOTICE ^E_WARNING ^E_STRICT);

解決方法

mysql_connect 改用 mysqli_connect()

這是最正規的方式拉,也是最推薦的,就是乖乖升級吧,雖然升級的過程中會有一段陣痛,有點痛,以下提供很簡單的範例。

mysqli_connect() 範例如下

mysqli_connect() 建表SQL如下

/*
    VECTOR COOL
    https://vector.cool
*/
$link = mysqli_connect('localhost', 'user', 'password', 'dbname');
mysqli_query($link, 'CREATE TEMPORARY TABLE `table`');

如果文章對您很有幫助
請我喝杯咖啡吧

Bitcoin 比特幣錢包:

38ieWXhURt27br9XrDoCeo4eruzKyi8QKs



ann71727

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料