開発中、MySQLデータベースを更新したあと、更新結果がどう反映されたかすぐ確認したいことがある。
PDOとかmysql_query()とかでSELECTを出して確認してもいいけどforeachで回したり整形したりするのが面倒。
mysqlコマンドが使える環境なら、exec('mysql…')したほうが楽だし見やすい。
<?php
exec('mysql -t -u ユーザ名 -pパスワード データベース名 -e "SELECT …" 2>&1', $output);
var_dump(PHP_EOL.implode(PHP_EOL, $output));
- -t: 表形式で出力する。これを指定することで罫線がつき見やすくなります。
- -e:
-e "SQL"
でクエリをmysqlコマンドで直接叩けます。
MAMPでやるときの例
<?php
exec('/Applications/MAMP/Library/bin/mysql -t -u root -proot foo -e "SELECT * FROM table1 WHERE id = '.$id.'" 2>&1', $output);
var_dump(PHP_EOL.implode(PHP_EOL, $output));