世界ビズとは】【利用規約】【個人情報取扱】【窓口】【オリジナルサービス】 [最終更新日20081030日] ©2007 sekai.biz All Rights Reserved
世界ビズPHP学科 > データベースの操作

世界ビズ[ログイン][オリジナルサービス]
 オンラインゲーム全集塔オンラインゲーム特集を開始しました。
 オリジナルサービス実装作業休止中です。ログインは可能です。
 【RSS実装】RSSの実装を試験的に開始いたしました。

[データベースの操作]


○データベースに関して

・ここで扱っているのはPDOによるMySQLデータベースの操作です。PDOを利用する際は、PHP.iniファイルに
extension=php_pdo.dll
extension=php_pdo_mysql.dll

の2行を追加してください。


○データベースに接続する

try{
$db=new PDO('mysql:host=hostname;dbname=Database','UserID','Password',array(PDO::ATTR_PERSISTENT=>true))
;
}catch(PDOException $e){
die('接続エラー:'.$e->getMessage())
;
}

・データベースを扱う際、まず行う必要のある作業です。hostname(ServerPCが同じ場合はlocalhost)、UserID、Password、Database名を記述します。$dbにはデータベースを取り扱う際に必要な情報が入ります。最後の引数はキャッシュを利用した持続的な接続をすることでWebアプリケーションを高速化します。


○トランザクションを利用する

$db->beginTransaction();…接続後に記述し、トランザクションを開始する。
$db->commit();…トランザクションを終了する。
$db->rollBack();…情報をロールバックする。

・トランザクションは、予期せぬ自体が生じた際に起こるデータの不整合の問題を回避します。変更した情報を書き込む際にはcommit()を、情報をロールバックする際にはrollBack()を指定します。安全のため、持続的な接続との併用は避けることをお勧めします。


○テーブルを作成する

$db->exec('CREATE TABLE A(C1 INT,C2 DECIMAL(6,2),C3 VARCHAR(255))');
INT
…整数。
DECIMAL(A,B)…全体でA桁の、B桁の小数を持つ十進数。
VARCHAR(1-255)…1-255(指定する)の長さを持った文字列。
DATETIME…日付と時間(例:2100年1月1日0時0分0秒)。

・テーブル名(A)を指定し、各カラム名(C1-C3)と型(INTなど)を持ったテーブルを作成します。


○テーブルを削除する

$db->exec('DROP TABLE A');

・テーブルAを削除します。内部のデータを含め、全て消えてしまうので注意が必要です。


○データを書き込む

$db->exec("INSERT INTO A(C1,C3)VALUES(10,'aa')");
$db->exec("INSERT INTO A VALUES(10,10.2,'aa')");

・テーブルAのカラム(C1,C3)に値(10,aaなど)を代入します。命令が実行されるごとにテーブルには行が新たに加えられます。値がカラムの型に合わない場合、命令は実行されません。全カラムに値を代入する場合は、下側のように対応カラムを省略することで記述を簡略化できます。


○WHERE句

WHERE (A>5 AND A<10)…記述例。

・条件に合うデータだけを操作させるための式です。演算子には=等しい、<>等しくない、>より大きい、<より小さい、>=以上、<=以下、AND共にtrue、ORどちらか1つがtrue、()グループ化などがあります。また、LIKEとワイルドカード(_1文字と一致、%0~複数文字と一致)を使う方法もあります(例:C1 LIKE No_ %th)。その場合、文字として_や%を使う場合は\でエスケープします。


○データを変更する

$db->query('UPDATE A SET B=C X');

・テーブルAにおいて、カラムBの値をCに書き換えます。B=Cの部分は,で区切ることでいくつでも設定できます。また、B=B*2と言った書き方も可能です。X部分に上記のWHERE句を入れ、操作対象を限定することもできます。


○データを削除する

$db->query('DELETE FROM A X');

・テーブルAのデータを削除します。X部分に上記のWHERE句を入れ、操作対象を限定することもできます。


○プリペアドステートメントによるデータ取得

$da=$db->prepare('SELECT C1,C2 FROM A WHERE C1=:name');
$da->bindParam(':name',$a);
$a=1;
$da->execute();
$dc=$da->fetch();

・テーブルAのカラムC1,C2(*を使うと全カラム)の値を取得します。上記ではプリペアドステートメントによりまず処理を定義し、execute()にて実行しています(INSERT文などにも利用可能)。:nameは名前つきプレースホルダです。$dcにはfetch()により返された1行が配列として格納されます。


○データを指定した順で取得する

$da=$db->query('SELECT * FROM A X ORDER BY C3 DESC,C2 LIMIT 1');

・ORDER BY C3 DESCはC3の降順(DESCを取ると昇順)でデータを取得します。,C2の部分は、C3の値が同じだった場合にC2の昇順で返すという意味です。LIMIT 1は最後に付加し、取得する行数を制限します(上記では1)。X部分に上記のWHERE句を入れ、操作対象を限定することもできます。



【ホームページ制作予定の方へお勧めするレンタルサーバーです】


PHP学科】【AJAX学科へ】
環境設定
 ・設定ファイル
基本記述
 ・文字列操作
 ・数値の操作
条件分岐
配列
オートグローバル配列
Webフォーム
正規表現
データベースの操作
クッキーとセッション
日付と時刻
ファイル操作
セキュリティ
様々な命令


【世界ビズ】

【専門列塔街道】
 オンラインゲーム全集塔
 有料情報商材研究塔
ゲーム攻略局
 ドラゴンクエスト1攻略課
 ドラゴンクエスト2攻略課
 ドラゴンクエスト4攻略課
 Final Fantasy4攻略課
 世界はあたしでまわってる
 天外魔境2攻略課
【インターネット研究所】
 世界の厳選サイト
【コミック資料館】
 デスノート資料室
 GANTZ資料室
 キン肉マン資料室
 ワンピース資料室
【バーチャル大学】
 AJAX学科
 ASP学科
 英語学科
 PC用語学科
 PHP学科
 歴史学科
【その他】
 世界ビズ詳細データ
 リンクに関して
 個人情報保護法令