PHP7.xにアップデートした際に発生したエラー対処まとめ
主にphp7で非推奨になったmysql_connect
を使用していた場合に発生するエラー文と対処方法をご紹介します。
ソース例
PHP5.x
$link = mysql_connect($server, $usr, $pass); $db = mysql_select_db($mydb, $link); mysql_set_charset('utf8'); $result = mysql_query($query); if($row = mysql_fetch_assoc($result)) {
PHP7.x
$link = mysqli_connect($server, $usr, $pass); $db = mysqli_select_db($link, $mydb); if (!$link->set_charset("utf8")) { error_log("Set charset Error", $link->error); exit(); } $result = mysqli_query($link, $query); if($row = mysqli_fetch_assoc($result)) {
エラー一覧
エラー1
Fatal error: Uncaught Error: Call to undefined function mysql_connect() in example.php:1 Stack trace: #0 {main} thrown in example.php on line 1
変更前
$link = mysql_connect($server, $usr, $pass);
変更後
$link = mysqli_connect($server, $usr, $pass);
エラー2
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in example.php on line 2
変更前
$db = mysql_select_db($mydb, $link);
変更後
$db = mysqli_select_db($link, $mydb);
エラー3
Fatal error: Uncaught Error: Call to undefined function mysql_set_charset() in example.php:3 Stack trace: #0 {main} thrown in example.php on line 3
変更前
mysql_set_charset('utf8');
変更後
if (!$link->set_charset("utf8")) { error_log("Set charset Error", $link->error); exit(); }
エラー4
Fatal error: Uncaught Error: Call to undefined function mysql_query() in example.php:4 Stack trace: #0 {main} thrown in example.php on line 4
Warning: mysqli_query() expects at least 2 parameters, 1 given in example.php on line 4
変更前
$result = mysql_query($query);
変更後
$result = mysqli_query($link, $query);
エラー5
Fatal error: Uncaught Error: Call to undefined function mysql_fetch_assoc() in example.php:5 Stack trace: #0 {main} thrown in example.php on line 5
変更前
if($row = mysql_fetch_assoc($result)) {
変更後
if($row = mysqli_fetch_assoc($result)) {
以上です。書き換えの参考にしてみてください。