環境: CakePHP 1.3
CakePHPでの開発中、コマンドラインから直接SQLを実行したいことがままあるので、CakePHPのdatabase.phpから情報を取得してmysqlコマンドで接続するためのシェルスクリプトを作った(要CLI版php)。
何もオプションを指定しなければそのままmysqlのインタラクティブシェルに入る。
./connect_db.shコマンドライン引数はそのままmysqlコマンドに渡されるので、例えば -e オプションを使うとそのままSQLを実行できる。
./connect_db.sh -e 'select * from users'
標準では default 接続が使われる。その他の接続設定を使いたい場合は connect_db.sh に対して connect_db_{接続名} という名前でシンボリックリンクを作る。
# DATABASE_CONFIG->test に接続 ln -s connect_db.sh connect_db_test ./connect_db_test
私の場合 app と同じ階層に bin というディレクトリを作ってそこにシェルスクリプトを置いているので、パスもそれに合わせてある。異なるディレクトリ構成で使う場合は最初のAPPの定義を適宜書き換える。