研修(phpからMySQLへのクエリ送信)
// 入力フォームデータをDBに保存するクエリ $query = "insert into user_info values( null, '".$_POST['lastname']."', '".$_POST['firstname']."', '".$_POST['lastkana']."', '".$_POST['firstkana']."', '".$_POST['sex']."', '".$_POST['f_code']."-".$_POST['s_code']."', '".$_POST['prefid']."', '".$_POST['address']."', '".$_POST['housenumber']."', '".$_POST['email']."', '".$hobby."', '".$_POST['hobby_etc']."', '".$_POST['opinion']."', '".$date."', null );"; // クエリ送信 if(!mysql_query($query)){ echo mysql_error(); }
クエリ文に関してはMySQL同様書くだけ。
mysql_query(query文)で接続したデータベースにクエリを送信。
※set型のカラムへのクエリ送信
テーブルでset型を作ったとき、
クエリでset型にinsertするとき、
それぞれの処理を以下のようにやっていた。
・テーブル設計 create table test (hobby set('music','movie','etc')); ・クエリ insert into test (hobby) values ('music', 'movie');
これなら本来テーブルにはmusicとmovieの2つが入るはず。
しかし確認するとmusicしか入っていない。
。。。
。。。
試行錯誤し悩むこと1時間強。
原因が分かりました。
テーブル設計では('music','movie','etc')とカンマの後にスペース入れてない。
クエリでは('music', 'movie')とカンマの後にスペースを入れている。
クエリのスペースを入れない方向で送信。
。。。
入った。。。
スペース一個でこうも違うとは。。。
スペースを入れるのかとか、大文字小文字にするのかとか、
プログラム作成する上でいろいろ規定を作った方が良いと
あらためて実感した瞬間でした。