• 締切済み

PHP+MySQLで複数配列の挿入(INSERT)

こんにちは。PHPの初心者です。MySQLで一つの配列を読む方法はわかっていますが、複数の配列をテーブルに入れる方法がわかりません。どなたかわかる方がいらっしゃったら教えてください。 $sql01 = "INSERT INTO $table01 (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content, comment_karma, comment_approved, comment_agent, comment_type, comment_parent, user_id, comment_subscribe) VALUES ('1069','online post dated check cashing','Tim','Hello','221.120.211.2','2008-09-23 06:43:43','2008-09-23 14:43:43','Yay','0','spam','Hello','trackback','0','0','N')"; 以上のように$table01というテーブルに特定のデータを挿入することができます。データベースは$database_my_juliaです。もう既に$database_my_meggyというデータで以下のようにデータを$sqlに保持しています。このような複数の配列を上記のように他のデータベースのテーブルに挿入することはできるでしょうか? $sql = "select comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date comment_date_gmt, comment_content, comment_karma, comment_approved, comment_agent, comment_type, comment_parent, user_id, comment_subscribe from $table00 WHERE comment_approved != '1'"; $result_my_meggy = mysql_query($sql,$my_meggy); 宜しくお願いします。

みんなの回答

  • calltella
  • ベストアンサー率49% (317/635)
回答No.2

while ($item = mysql_fetch_array($result_my_meggy)) { $ins_sql[] = "INSERT INTO $table01 (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content, comment_karma, comment_approved, comment_agent, comment_type, comment_parent, user_id, comment_subscribe) VALUES ($item[comment_post_ID], $item[comment_author], $item[comment_author_email], $item[comment_author_url], $item[comment_author_IP], $item[comment_date], $item[comment_date_gmt], $item[comment_content], $item[comment_karma], $item[comment_approved], $item[comment_agent], $item[comment_type], $item[comment_parent], $item[user_id], $item[comment_subscribe])"; } for(i=0;$i<count($ins_sql);$i++){ $res = mysql_query($sql[$i]); } 動作確認していないので動かないかもしれませんがこんな感じです。 SELECTで読み込んだ内容でSQL(INSERT)文を作成し変数ins_sql配列に加えて 全部読み込んだ後にins_sqlの内容をクエリ送信しています。

Hey29991
質問者

補足

どうもご返答ありがとうございます。 while ($row = mysql_fetch_assoc($result_my_meggy)) { とした後、INSERT文内で VALUES ('".$row['comment_post_ID']."','".$row['comment_author']."'...)";とすることで解決しました。 再度お礼を申し上げます。

  • calltella
  • ベストアンサー率49% (317/635)
回答No.1

PHPでされるのならSELECT文で読み込んでINSERT文をPHPで作成しMYSQLに送信 ↑これを行数分だけFOR文で繰り返せばできます。 テーブルの構成が同じ必要がありますが phpmyadminなどのツールを使用するならSELECT文でエクスポートし 移動させたいテーブルにインポートすればOKです。

Hey29991
質問者

補足

早速のご返事ありがとうございます。 「PHPでされるのならSELECT文で読み込んでINSERT文をPHPで作成しMYSQLに送信 ↑これを行数分だけFOR文で繰り返せばできます。」 、とあります。言っていることはわかるし、そのようにできればと試行錯誤しています。具体的に$sql或は$result_my_meggyをどうやって$sql01にあるInsert文に渡すのでしょうか? どうぞ宜しくお願いします。

関連するQ&A