変数へ mysql 検索結果の格納

PHP で MySQL を実行する時には
mysql_query() で実行するのですが
SELECTを実行する時には、一度変数に保存します
ちなみに、変数に格納するという方法は、
web api を使ってサイト構築したり、マッシュアップするときにも使われる方法です
今回は
$recordSet = mysql_query(‘SELECT * FROM my_items’);
というように
$recordSet に格納しています
でも、格納しただけでは使えないので
mysql_fetch_assoc() を使います
変数に格納しただけだと
int i=1;
と宣言しただけと同じなので、これだけでは無意味です
この mysql_fetch_assoc() ですが
$data = mysql_fetch_assoc($recordSet);
というように、別の変数にデータを入れるようにします
ちなみに、PHPの場合、
$data のように、
C , java などのように
int とか long とかで宣言せずとも変数を使えたりします
逆に、javascript のようにスクリプト関連でも
var を使って変数宣言するということもありますので
逆にわかりにくいのかもしれませんが….
少々ずれてしまいましたが
解説に戻ると
$recordSet = mysql_query(‘SELECT * FROM my_items’);

変数に
選択するDBテーブルを格納します
今回なら $recordSet に格納しています
$data = mysql_fetch_assoc($recordSet);

検索結果を
変数に格納します
今回なら $data に格納しています
最後に
echo $data[‘item_name’];

一番最初の
データが表示されます
echo $data[‘item_name’];
のところは、配列なので、
() ではなく [] で囲っているところに注意しましょう

php でDB接続

PHP + Mysql のつまづくこともあるので、メモしていきます
mysql で作成したDBへ PHPからアクセスするには
mysql_connect(‘ホスト名’,’ユーザ名’,’パスワード’);
でアクセスします
ほとんどの場合、ここにエラー処理も加えるので
mysql_connect(‘localhost’,user’,’passwd’) of die(mysql_error());
というようにして
使います
次に、DBを選択する場合ですが
mysql_select_db(‘データベース名’) or die(mysql_error());
とします
続いて、DBの文字コード設定です
ほとんどの場合UTFー8なので
mysql_query(‘SET NAMES UTF8’);
ちなみに、文字コード設定を間違えると入力したもじが
文字化けします
私は NAMES を NAMEとして文字化けしたことがありました…
修正がかなり面倒でした
そして DB へ接続した状態で SQL を実行するときには
mysql_query(’実行するsql’) or die(mysql_error());
となります
例えば、INSERT を使いたいなら
mysql_query(‘INSERT …..’) or die(mysql_error());
というようになります
ちなみに、” で囲っているので、sql を実行する時には
“”を使うようにします
例えば
INSERT INTO my_items SET item_name=‘もも’;
をじっこうしたいときに、このままだとエラーなので、
INSERT INTO my_items SET item_name=”もも”;
というように “” で囲むようにします

特定条件でのレコードの検索

PHP で DB を使うときに
特定の条件でレコードを検索するにはfind メソッドを使います
第1引数に検索のタイプ
第2引数にオプションの配列を指定します
まず、タイプについて
all
条件にあう全レコードを取得
first
条件にあう最初のレコードを取得
count
条件にあうレコードの数を取得
list
条件にあうレコードのリスト取得
neighbors
条件にあうレコードの前後のレコードを取得
threaded
ツリー構造でDBからレコード取得
続いて オプションについて
conditions
検索条件の配列を指定
recursive
再帰的に検索する深度を指定
fields
取得するフィールド名の配列を指定
order
文字列化配列で取得順序(並べ替え順)を指定
group
SQL文のGROUP BY 句と同じ
limit
取得するレコード数の指定
page
取得するページの指定
offset
何件目のレコードから取得するかを指定する