サーバーメンテナンスにより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を付ける必要があるらしい。よく見ないと気づかん。