in
MySQL
- 12 11月, 2013
PHP入門 その4
今回からデータベース操作を学んでいきましょう。
PHPと相性がいいらしいのでDBはMySQLを使います。
環境構築はネットを検索してください。
ここでは、環境構築後(DB、テーブル作成済み)のDB操作からやっていきます。
今回は以下の設定のテーブルを使います。
DB名:testDB テーブル名:userData ホスト名:localhost ユーザ名:user パスワード:password
まず、DBに接続してみましょう。
<?php //DB接続 $connect = new mysqli("localhost", "user", "password"); //接続時のエラー確認。エラーなら終了 if($connect -> connect_error){ print $connect -> connect_errno; exit(); } //DB接続終了処理 $connect -> close(); ?>
このプログラムはDBに接続して、終了するだけのものです。
接続するにはmysqliクラスのインスタンスを生成します。
$変数名 = new mysqli("ホスト名", "ユーザ名", "パスワード");
引数には、ホスト名・ユーザ名・パスワードを指定します。これだけでDB接続できます。
最後に終了処理を行います。この終了処理は忘れないようにしましょう。
次にSQL文を発行して、DBを操作する処理を書いてみましょう。
今回はselect文を使い、レコードを検索します。
<?php //DB接続 $connect = new mysqli("localhost", "user", "password"); //接続時のエラー確認。エラーなら終了 if($connect -> connect_error){ print $connect -> connect_errno; exit(); } //select文 $sql = "select * from userData where name = 'tanaka'"; //select文発行 if($result = $connect -> query($sql)){ //検索結果を連想配列に格納 while($result -> fetch_assoc()){ print $result["name"]." ".$result["age"]." ".$result["birth"]."<br>"; } //検索結果の終了処理 $result -> close(); } //DB接続終了処理 $connect -> close(); ?>
tanaka 20 11/6
SQL文の発行にはquery()を使います。
query()の引数にSQL文を書くことで実行することが出来ます。
ここで前回学んだ連想配列に検索結果を格納しています。
今回は列数・レコード数が少ないためあまりありがたみがわかりませんが
検索結果が多い場合は多次元連想配列に格納すると便利です。
今回使ったquery()では検索条件をベタ書きするしかありません。
もし、同じSQL文で検索条件によって使い分けようと思ったら
SQL文を検索条件の数だけ用意しなければならず、かなり面倒です。
そこで、良く使われるのがプリペアドステートメントです。
次回はプリペアドステートメントについてやっていきましょう。