phpとdbのやりとりのこと
<form action="xxx.php" method="post"> name <div><input type="text" name="n"></div> message <div><textarea name="m"></textarea></div> <input type="submit" value="SUBMIT"> </form>
テキストフォーム、テキストエリアには名前をそれぞれ付けており、
$POST["n"], $POST["m"]でフォームに入力された情報を取得できる。
$my_num = htmlspecialchars($_POST["n"], ENT_QUOTES); $my_mes = htmlspecialchars($_POST["m"], ENT_QUOTES);
phpの記述ではフォームで入力された情報に
タグなどがあった場合に無効化する記述を施し、
変数に格納してます。
$db = new PDO("mysql:host=localhost;dbname=db_book", "root", "root") $変数 = new オブジェクト("mysql:host=ホスト名,dbname=DB名", "ユーザー名", "パスワード名") $db->query("INSERT INTO tb_book(ban, nam, mes, dat) VALUES(NULL, '$my_nam', '$my_mes', NOW())")
データベースを操作するためのコマンド
PDOオブジェクトを使用し、$db変数に代入している。
newはオブジェクトを作成するときに使用するコマンド
ホスト名やユーザー名はどこから探すのー?!ていう時は
$db->queryでSQL文を用いて、INTOの後にデータベースにあるテーブル名、
カラム名に該当するデータを入れてます。
VALUESの後に続くのは入れたい値を指定してます。
DBを操作する場合はページ毎にPDOオブジェクトが必要
表示プログラムの実行
$db = new PDO("mysql:host=localhost;dbname=db_book", "root", "root"); // tb_bookテーブルから全てのデータを取得 // queryメソッドの結果を$ps変数に代入 // 文字列や数値ではなく、PDOStatement(オブジェクト)が入っている // $psはPDOStatementのPSからとってる?! $ps = $db->query("SELECT * FROM tb_book"); // $psの中身はオブジェクトなので、printで出力できない // fetchというメソッドを実行 SQLの実行結果から1レコード分を配列として返す // 実行すると一番古いレコードが配列に変換され、$rに代入される $r = $ps->fetch(); // fetchメソッドが返す配列はカラム名がそのままデータの名前になっている // {}は展開式、各変数を囲むことで中身を表示する print "{$r['ban']} {$r['nam']} {$['dat']} {$['mes']}";
長くなりましたが、以上がphpでdbのデータとのやりとり諸々です。 foreachやwhileを用いて、残りのデータを表示します。