人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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を同時に実行することは可能でしょうか?

●質問者: kunitz
●カテゴリ:コンピュータ
✍キーワード:MySQL
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● upride
●20ポイント

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

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

phpからinsert文を

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

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

また、mysql5からは

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

可能なことも書いてます

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

◎質問者からの返答

ありがとうございます!

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


2 ● esseesse
●20ポイント

http://www.mmdb.net/m_kaneko/mysql/kansu/mysql_query.html

関数リファレンス mysql_query

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

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

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

http://jp2.php.net/function.exec

PHP: exec - Manual

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

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

◎質問者からの返答

ありがとうございます!

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

ループ


3 ● k12u
●20ポイント

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

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

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

◎質問者からの返答

ありがとうございます!

Prepared Statement

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ