mysqlで質問です。

複数のqueryを一度にqueryする方法を教えてください。

mysql_query(”INSERT INTO `A` VALUES (2,’2004-12-04’);”);

など1つずつはできますが、

mysql_query(”INSERT INTO `A` VALUES (2,’2004-12-04’);¥r¥nINSERT INTO `A` VALUES (3,’2004-12-05’);”);

など複数のqueryを同時に実行することは可能でしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2004/12/10 19:14:13
  • 終了:--

回答(3件)

id:upride No.1

upride回答回数220ベストアンサー獲得回数12004/12/10 20:10:24

ポイント20pt

http://www.hatena.ne.jp/1101882029

人力検索はてな - mysq のSQL文を使って、あるフラッグがたっているデータのみに連番を簡単にふることは可能なのでしょうか? 

phpからinsert文を

ループにより発行することで実現できます

(このページではupdateですが)

また、mysql5からは

ストアドプロシージャで同等なことが

可能なことも書いてます

(こちらの方がトラフィックもなく高速です)

id:kunitz

ありがとうございます!

DBのダンプデータなどをtxtファイルから読み込んでと考えてください。

2004/12/10 21:25:15
id:esseesse No.2

esseesse回答回数192ベストアンサー獲得回数02004/12/11 08:50:31

ポイント20pt

まず、mysql_queryで与えられるSQLは1つのステートメントでないといけないという縛りがあります。

(クロスサイトスクリプティングの対策と思われます)

ですから、ループでまわして複数回実行するか

mysqldumpで出力したようにmysqlにそのまま食わせられるファイルを作成してexecでmysqlに流すなどが考えられます。

が、セキュリティなどのことを考えるとループで解決するのがいいのかな、と思います。

id:kunitz

ありがとうございます!

mysql_queryで与えられるSQLは1つのステートメントでないといけない

ループ

2004/12/11 13:01:03
id:k12u No.3

k12u回答回数80ベストアンサー獲得回数72004/12/12 14:38:43

ポイント20pt

http://lists.mysql.com/mysql-ja/77

MySQL Lists: mysql-ja: Prepared Statement (訳)

MySQL 4.1からはサーバサイドのPrepared Statementが利用できるようです。「速く、セキュアー」であるとされています。C、Java、PHPのドライバーではすでにサポートされていて、Perlではこのドキュメントの時点では未サポート(クライアントサイドのみ)のようです。

id:kunitz

ありがとうございます!

Prepared Statement

2004/12/12 16:25:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません