初心者です。
phpファイルにおいて下記のように書きましたらDBにinsertできますが、
「
$sql = mysql_query("insert into table1 (item_code, addr) values('$mail[item_code]', '$mail[addr]')", $con);
」
下記のように書き加えたらうまくtable2からデータをとって、table1にinsertできません。
書き方が間違っていると思いますが、どなたか教えて頂けませんでしょうか。
「
$sql = mysql_query("insert all into table1 (item_code, addr) values('$mail[item_code]', '$mail[addr]') into t_table1 (maker, maker_name) select maker, maker_name from table2 order by goods_code limit 1", $con);
」
よろしくお願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
まず、insert all
という構文はありません。
次に、insert ... values
構文とinsert ... select
構文をつなげることもできません。
Sora-tan様の回答のように一旦table2
テーブルからSELECT
してやるか、
別々のINSERT
文として実行する必要があります。
https://dev.mysql.com/doc/refman/5.6/ja/insert.html
以下のSQL文で、期待する動作になるかと思います。
sql
1INSERT INTO table1 (item_code, addr, maker, maker_name) 2SELECT '$mail[item_code]', '$mail[addr]', maker, maker_name 3 FROM table2 WHERE goods_code = '$mail[item_code]';
https://dev.mysql.com/doc/refman/5.6/ja/insert-select.html
ただし、
table1 に item_code, addr, maker, maker_nameなどのカラムがありまして
とあるので、table1
テーブルにインサートしたいカラムを増やす際は、1行目の
sql
1INSERT INTO table1 (...)
部分と、2行目の
sql
1SELECT ...
部分に指定するカラムの数と順番を揃えるようにしてください。
投稿2016/04/20 10:47
編集2016/04/21 06:47総合スコア4791
0
ベストアンサー
なんとなぁく やろうとしている事が解かるんですが(思い違いしてたらごめんなさい^^;)
一行のステートメントでそれをやるのは無茶じゃないですか?
事前にtable2
へselect
かけて値を変数に代入した後にt_table1
へinsert
..って感じじゃないかと
いずれにしても mysql_query()
等のMySQL 拡張モジュールは廃止予定らしいのでもう使わない方がいいと思いますよ
ご参考までに
投稿2016/04/20 10:35
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/04/21 01:38 編集
2016/04/22 08:29
2016/04/22 08:56
退会済みユーザー
2016/04/23 03:40
0
insert all は mysql使えないので
sql
1insert into table1 (item_code, addr) select '$mail[item_code]', '$mail[addr]' union select maker, maker_name from table2 order by goods_code limit 1
みたいには書けますけど、別にやったほうがいいんじゃないですか?
投稿2016/04/20 10:59
退会済みユーザー
総合スコア0
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/04/20 12:48
2016/04/20 13:45
2016/04/21 05:59
2016/04/21 06:02
2016/04/21 06:37
2016/04/21 06:51 編集
2016/04/21 08:42
2016/04/21 08:52
2016/04/21 23:52
2016/04/22 02:31
2016/04/22 08:33
2016/04/22 08:57
2016/04/22 09:30 編集
2016/05/11 04:30