・ここで扱っているのは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 (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学科
歴史学科
【その他】
世界ビズ詳細データ
リンクに関して
個人情報保護法令