サーバーメンテナンスによりPHPのバージョンが変わるということでサイト確認すると、データベースに接続できなくなっていた。バージョンの変更はPHP5.4から7.0以上になるとか。今後のWordpressのインストールとかも考えて自分はPHP7.4に設定。

あるサイトはスクラッチで作成したため、データベースの接続ももちろん一から構築。真っ白の表示状態だったため、.htaccessでPHPのエラー表示を許可したら接続ができていないエラーがいくつか上がった。

Uncaught Error: Call to undefined function mysql_connect()

まずはmysql_connect()は現バージョンでは対応してませんよということらしい。そして、接続方法を変更すると、その他のところも併せて変更する作業が発生することが判明。

なので、以下にその作業内容を記録していく。

Uncaught Error: Call to undefined function mysql_connect()

mysql_connect() を mysqli_connect() に変更

一覧データを取得しようとしたら以下のエラーが発生

Uncaught Error: Call to undefined function mysql_select_db()

mysql_select_db() を mysqli_select_db() に変更

再度実行したら以下が発生

mysqli_select_db() expects exactly 2 parameters, 1 given in

mysql_select_db($database) で取得してたため、以下に変更

$link = mysqli_connect(HOST, USER, PASS, DB);

mysqli_select_db($link, DB) 第一引数に接続したときの情報を追加

そして再度実行したら以下が発生

Uncaught Error: Call to undefined function mysql_query()

つまり、mysql_なんちゃらをmysqli_に変えたらなんかよさげになる的な感じっぽい。

面倒なんで、一斉置換でmysql_からmysqli_に変更。第一引数に接続情報が必要になったところは追加する。そんな感じでほどんどOKになった。

ただ、最後にもう一つエラーが発生。

Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC'

これはmysqli_fetch_array()の第二引数に設定するmodeのMYSQL_ASSOCもiを付ける必要があるらしい。よく見ないと気づかん。