【phpMyAdmin】バージョンアップしたら「Unknown system variable ‘lc_messages’」というエラーが出る

先日ステージング環境をPHP7にして、システムの動作は確認したのですが、
phpMyAdminを確認していなかったことに気づき、phpMyAdminにアクセスしました。

ん?

PHP7にするために古いPHPとモジュール群を一気に削除したとき、
phpMyAdminも削除してしまっていたのでした。

というかPHP7にしたので、おそらく古いphpMyAdminは対応していない可能性が高いので
phpMyAdminもPHP7に対応するバージョンをインストールすることにします。

PHP7.1用のリポジトリは先日

PHP5.3をいきなりPHP7.1にする

でインストール済みなので、

を実行するだけです。

さあ、さっそくphpMyAdminを確認すると、
ログイン後になんだか大量のエラーが!
上にスクロールして一番上のエラーを見ると

というメッセージが出ています。

今インストールしているMySQLには
lc_messagesという環境変数が見つからない、
つまりMySQLもバージョンアップしろってことですね。

こういう状況は昔からさんざん直面してきたので
なんとなく「こんなエラーが出たらこうしてみる」というパターンが
身についてきました。

現在のMySQLのバージョンは5.1でした。
MySQL5.6にバージョンアップします。

データベースが消えることはないですが、
念のため全データベースをダンプしておきましょう。

現在のMySQLを削除

リポジトリ追加

インストール

あらためてphpMyAdminにアクセスしてみると、、
エラーがなくなりました。

【PHP】【MySQL】日付の書式の違い

PHPとMySQLで日付の書式が若干違っています。
どちらかしか使わないと決めているならいいのですが、
日付の整形をPHPでやるか、MySQLでやるいか、ケースバイケースなんですよね。

PHPは

使い方は

MySQLは

使い方は

【MySQL】PHPのstrposをSQLでやる

MySQLのLOCATE関数でPHPのstrpos関数と同様のことができます。

このSQLの答えは5が返ってきます。

PHPのstrposと異なるのは、
1文字目がヒットした場合は0ではなく1を返します。
存在しなかった場合は0が返ってきます。

私がよく使うパターンとしては
データの中にキーワードが含まれるかどうかの判定ですね。

【Linux】各種バージョンを調べる

調べ方も様々なのでつい忘れてしまいますよね。

CentOSのバージョン

Apacheのバージョン

MySQLのバージョン

PHPのバージョン

【MySQL】SQLでIF文(CASE)を使う

SQLで条件によって返す値を変えたいとき、
NULLのときはIFNULLで簡単ですが、

IF文のような条件分岐をさせたいときには、CASE文を使います。