• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysql データ登録)

MySQLデータ登録の流れとエラー対応方法

このQ&Aのポイント
  • PHPでMySQLにデータ登録する方法について質問があります。具体的には、MySQLのテーブルの構成とPHPフォームの作成方法についてわからないことがあります。
  • 現在、MySQLのテーブル「member」の構成は「id」と「name」の2つのカラムで構成されています。また、PHPのフォームでは「name1」、「name2」、「name3」の3つのフィールドを作成しています。
  • しかし、これらのフィールドの値をMySQLに登録する際に、同じ「name」カラムに3つの値を一度に登録したいという要望があります。しかし現在のSQL文ではエラーが発生しています。レコード数は増やしたくないため、他の方法を教えていただきたいと思っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • duron
  • ベストアンサー率77% (73/94)
回答No.1

一回で複数行追加したいならば INSERT INTO テーブル名 VALUES(...),(...),... というように記述してください。 (...)の中はテーブルのカラムの数と同じだけのデータが必要です。 今回の内容でしたら INSERT INTO member VALUES(1,'A'),(2,'B'),(3,'C') となります。

h199613
質問者

お礼

ご回答有難う御座います。 できました。 有難う御座います。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

補足? 新規投入で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>

h199613
質問者

お礼

ご回答有難う御座います。 <input type="text" name="name[]" value=""> type="text"でname[]なんてできるなんて初めてしりました。 勉強になります。 全然知らないことばかりですが、また何かありましたら宜しくお願いいたします。

関連するQ&A