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文を検索条件の数だけ用意しなければならず、かなり面倒です。

そこで、良く使われるのがプリペアドステートメントです。

 

次回はプリペアドステートメントについてやっていきましょう。