PHPからMySQLに接続する方法をメモに残します。
MySQLを使う流れ
PHPからデータ登録、取得する際もMySQLに接続が必要
MySQLに接続
MySQLに命令
テーブルにデータを登録
テーブルからデータを取得
MySQLを切断
PHPからMySQLに接続する方法
いくつか方法があるのですが、今回はMySQLiを使います。
mysqli_connect関数を使用します。
mysqli_connect('my_host','my_user','my_password','my_db')
コード例:
mysqli_connect('db','book_log','pass','book_log')
MySQLに接続できなかった場合の対策
MySQLに接続できないケースが想定されるので事前に対策を行っておく。
MySQLに接続できない場合はFALSEを返してアプリケーションを終了させる。
$link = mysqli_connect('db','book_log','pass','db') if(!$link){ echo 'Error:データベースに接続できません' . PHP_EOL; echo 'Debugging error:' . mysqli_connect_error() . PHP_EOL; exit; }
4行目のechoは本来はログに出力するのが望ましい。
MySQLとの接続を切断する
MySQLを使い終わったら切断します。
mysql_close($link)
実際はアプリケーション終了時に切断されるが、明示的に切っておくことをおすすめします。
PHPからMySQLに対してSQL文を実行する方法
INSERT文を使い1行のデータを登録する
- $link : mysqli_connect()が返すリンクID
- $query : SQL文の文字列
mysqli_query($link, $query)
コード例:
$link = mysqli_connect('db', 'book_log', 'pass', 'book_log'); $sql = "INSERT INTO companies(name) VALUES ('SmartHR inc')"; mysqli_query($link, $sql);
SQL実行時にエラーがあった場合
mysqli_query($link, $sql)を実行時にエラーがあった場合FALSEが返ることを利用する
$link = mysqli_connect('db', 'book_log', 'pass', 'book_log'); $sql = "INSERT INTO companies(name) VALUES ('SmartHR inc')"; $result = mysqli_query($link, $sql); if ($result) { echo 'レコードが追加されました' . PHP_EOL; } else { echo 'レコードの追加に失敗しました' . PHP_EOL; echo 'Debugging error:' . mysqli_error($link) . PHP_EOL; }
PHPで文字列が複数行になるとき
ヒアドキュメントを使用する
$sql =<<<EOT # <- <<<ID INSERT INTO companies( name ) VALUES ( #複数行のコメント 'SmartHR inc' ) EOT; #ID インデントしてはダメ

コメント