初めてのシステムと日記

システムも日記も初めてです。

研修(phpからMySQLへのクエリ送信)

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')とカンマの後にスペースを入れている。

クエリのスペースを入れない方向で送信。


。。。

入った。。。


スペース一個でこうも違うとは。。。

スペースを入れるのかとか、大文字小文字にするのかとか、

プログラム作成する上でいろいろ規定を作った方が良いと

あらためて実感した瞬間でした。