1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
<?php /* create database test_db character set utf8; use test_db create table test_tb (id int, name varchar(8))default character set=utf8; insert into test_tb (id,name) values (1,'taro'); insert into test_tb (id,name) values (1,'hanako'); insert into test_tb (id,name) values (1,'hanako'); insert into test_tb (id,name) values (1,'ziro'); insert into test_tb (id,name) values (1,'ziro'); */ $db = new PDO("mysql:host=localhost;dbname=test_db;charset=utf8","id","pass"); $stm = $db->query("select count(*) from test_tb"); var_dump($stm->fetchColumn()); //1セルの指定なので文字列で返ってくる。 /* 上記はselectの結果行数を取得する定番。 fetchColumn 次の1行取得する。列番号(0から)を指定することもできる。 */ $db = new PDO("mysql:host=localhost;dbname=test_db;charset=utf8","id","pass"); $stm = $db->query("select * from test_tb"); $cells = array(); $cells = $stm->fetchAll();//マトリクスで返ってくる。 echo $cells[4][1]; //[行][列] 0スタート // -> ziro echo "\n---------------------------------------------------------------------\n"; $db = new PDO("mysql:host=localhost;dbname=test_db;charset=utf8","id","pass"); foreach($db->query("select * from test_tb") as $row){ echo $row[0], "|", $row[1], "\n"; //例えばここでexitとすると、1行目の取得で終了してしまうため、1行のみ表示される。 } /* $queryをforeachで回すと$rowに1行ずつ配列で取得できる模様。 */ echo "\n---------------------------------------------------------------------\n"; $db = new PDO("mysql:host=localhost;dbname=test_db;charset=utf8","id","pass"); $rows = array(); //これがないと警告。 foreach($db->query("select * from test_tb") as $row) array_push($rows, $row); //fetchAllと同じような取得になりそう。 echo $rows[4][1]; //[行][列] 0スタート // -> ziro echo count($rows); // -> 5 //行のループでcountを利用する場合、添え字は0スタートでcountは量なので注意! echo "\n---------------------------------------------------------------------\n"; $db = new PDO("mysql:host=localhost;dbname=test_db;charset=utf8","id","pass"); $stm = $db->query("select * from test_tb"); var_dump($stm->fetch()); //1行ずつ取得する。 echo "\n---------------------------------------------------------------------\n"; $db = new PDO("mysql:host=localhost;dbname=test_db;charset=utf8","id","pass"); $stm = $db->query("select * from test_tb"); var_dump($stm->fetchColumn()); //1行ずつ(1列のみ)取得する。 |