PHPを使ってMySQLを利用しています。関数mysql_query()で、SQLクエリを発行しているのですが、基本的に、SQLクエリは1文しか受け付けません。複数のSQLクエリ文を含む「一つ変数」に対して、その複数すべてのSQLクエリを実行する方法はございますでしょうか?例えば、

$sql = "CREATE TABLE ........; SELECT * FROM .........; INSERT .....; ";
mysql_query($sql);
のように$sqlに3つのSQLクエリを含んでいて、それを一つずつ実行して欲しいと考えています。
#本来の目的は「MySQLAdminで、エクスポートしたSQL郡を、PHPを使って別サーバにインポートしたい。」です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/07/19 03:24:28
  • 終了:2006/07/26 03:25:03

回答(3件)

id:livings No.1

livings回答回数10ベストアンサー獲得回数02006/07/19 04:00:31

ポイント27pt

Mysql関連の関数にはなさそうです。

http://php.s3.to/man/ref.mysql.html

SQLの実行結果から処理を変えることからすれば不要とも考えられます。

OSコマンドの実行によってMySQLAdminでスクリプトを実行するという手はいかがでしょうか。

http://php.s3.to/man/function.system.html

id:moveyourbody

ありがとうございます。"MySQLAdminでスクリプトを実行する"というのが、いまいち分かりませんでした。スクリプトを入力できるんでしたっけ?

2006/07/22 07:36:39
id:takagimasahiro No.2

m-takagi回答回数23ベストアンサー獲得回数22006/07/19 06:49:44

ポイント27pt

PHP のバージョンが 5 以降で、かつ MySQL のバージョンが 4.1.3 以降なら、mysqli 関数群が使用できます。

id:moveyourbody

なるほど!こんなのがあったんですね。ありがとうございます。利用しているレンタルサーバーで試していますが、mysqliが対応しているものの、mysqli_multi_query 関数のところで、エラーが出ています。でも、一番いい解決案です。ありがとうございます。

2006/07/22 07:36:42
id:llusall No.3

llusall回答回数505ベストアンサー獲得回数612006/07/19 09:35:45

ポイント26pt

このような作業はバッチファイルで実行されると良いかと思うのですが、いかがでしょうか?


テキストファイルから SQL コマンドを実行する方法

SQL コマンドをファイルに入力して、そのファイルから mysql に読み取らせることも可能です。これを行うには、実行するコマンドを含むテキストファイル text_file を作成します。 そして、以下のように mysql を起動します。


shell> mysql database < text_file


※その他

ファイル内のSQLを実行

id:moveyourbody

ありがとうございます。使用しているレンタルサーバでmysqlクライアントが使えるか次第ですね。試してみます。

2006/07/22 07:42:16

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

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

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

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

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