- ベストアンサー
MySQLデータ登録の流れとエラー対応方法
- PHPでMySQLにデータ登録する方法について質問があります。具体的には、MySQLのテーブルの構成とPHPフォームの作成方法についてわからないことがあります。
- 現在、MySQLのテーブル「member」の構成は「id」と「name」の2つのカラムで構成されています。また、PHPのフォームでは「name1」、「name2」、「name3」の3つのフィールドを作成しています。
- しかし、これらのフィールドの値をMySQLに登録する際に、同じ「name」カラムに3つの値を一度に登録したいという要望があります。しかし現在のSQL文ではエラーが発生しています。レコード数は増やしたくないため、他の方法を教えていただきたいと思っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
一回で複数行追加したいならば INSERT INTO テーブル名 VALUES(...),(...),... というように記述してください。 (...)の中はテーブルのカラムの数と同じだけのデータが必要です。 今回の内容でしたら INSERT INTO member VALUES(1,'A'),(2,'B'),(3,'C') となります。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
補足? 新規投入でidを投げるのはデータ競合するのであまり意味がありません。 idはauto_incrementなどで対応した方がいいかもしれません。 またinputのnameは工夫次第で配列のようにあつかえます。 参考までに <?PHP $name=$_REQUEST["name"]; if(is_array($name)){ $sql="INSERT INTO member VALUES(name)"; $vals=""; foreach($name as $val){ if($vals!="" and $val!="") $vals.=","; if($val!="") $vals.="('".mysql_escape_string($val)."')"; } if($vals!=""){ $sql.=$vals; }else{ $sql=""; } } print $sql; ?> <form> <input type="text" name="name[]" value=""> <input type="text" name="name[]" value=""> <input type="text" name="name[]" value=""> <input type="submit" value="go"> </form>
お礼
ご回答有難う御座います。 <input type="text" name="name[]" value=""> type="text"でname[]なんてできるなんて初めてしりました。 勉強になります。 全然知らないことばかりですが、また何かありましたら宜しくお願いいたします。
お礼
ご回答有難う御座います。 できました。 有難う御座います。