ほぼ毎週金曜18:00更新!

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)) {

以上です。書き換えの参考にしてみてください。

記事がお役に立ちましたらシェアお願いします!