php 版本,5.2、5.3、5.4、5.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`');