みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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);

宜しくお願いします。

投稿日時 - 2008-10-06 03:00:27

QNo.4380807

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.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の内容をクエリ送信しています。

投稿日時 - 2008-10-06 06:57:48

補足

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

再度お礼を申し上げます。

投稿日時 - 2008-10-06 09:25:12

ANo.1

PHPでされるのならSELECT文で読み込んでINSERT文をPHPで作成しMYSQLに送信
↑これを行数分だけFOR文で繰り返せばできます。

テーブルの構成が同じ必要がありますが
phpmyadminなどのツールを使用するならSELECT文でエクスポートし
移動させたいテーブルにインポートすればOKです。

投稿日時 - 2008-10-06 03:41:50

補足

早速のご返事ありがとうございます。

「PHPでされるのならSELECT文で読み込んでINSERT文をPHPで作成しMYSQLに送信 ↑これを行数分だけFOR文で繰り返せばできます。」

、とあります。言っていることはわかるし、そのようにできればと試行錯誤しています。具体的に$sql或は$result_my_meggyをどうやって$sql01にあるInsert文に渡すのでしょうか?

どうぞ宜しくお願いします。

投稿日時 - 2008-10-06 04:20:10

あなたにオススメの質問