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文を検索条件の数だけ用意しなければならず、かなり面倒です。
そこで、良く使われるのがプリペアドステートメントです。
次回はプリペアドステートメントについてやっていきましょう。



