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

解決済みの質問

PHP / MySQL / クエリ実行

【概要】
PHPからMySQLへのクエリを実行したいのですが、結果が返りません。

【環境】
CentOS5 [PHP5]
sakuraインターネット レンタルサーバ スタンダートプランです。
参考:http://www.sakura.ne.jp/rentalserver/matrix.html

【ソース PHP】
------------------------------------------------------------
$query =
 mysql_query('
SET @i := 0;
SET @ii := 0;
SET @iii := 0;
SET @iiii := 0;

select `sys_no`,`day`,`counter`,(@iiii := @iiii +1)as `counter2` from
(select `sys_no`,`name`,`day`,(@i := @i +1) as `counter` from TBL名 ORDER BY `day` DESC ) as aa
where counter BETWEEN
(select a.counter from
(select `sys_no`,`day`,(@ii := @ii +1) as `counter` from TBL名 ORDER BY day DESC ) as a where sys_no =5) - 1
AND
(select a.counter from
(select `sys_no`,`day`,(@iii := @iii +1) as `counter` from TBL名 ORDER BY day DESC ) as a where sys_no =5) + 1
');

while ($row = mysql_fetch_array($query)) {
結果取得処理
}
------------------------------------------------------------
・上記をPHPより実行しますと、「while~」の部分で結果が無いとエラーが返ります。
・phpMyAdminから直接クエリの部分のみを実行しますと、問題無く結果が返ります。
・なお、クエリを簡単な一行程度の内容にしますと問題無く実行され、結果が返ります。例:select * from TBL名
・また、上部にセットしている4つのSETを試しに削除した状態でPHPより実行しますと、結果は返りませんがエラーにはなりません。


以上、アドバイス頂戴できますでしょうか。
よろしくお願い致します。

投稿日時 - 2012-01-07 03:44:52

QNo.7229766

すぐに回答ほしいです

質問者が選んだベストアンサー

PHPのマニュアルに書かれている通り、mysql_query は ひとつのクエリのみ処理でき、複数クエリの送信はサポートしていません。

質問者様が書かれているSQL文は、SETが4つとSELECTが1つの計5つのクエリーからなるモノですので処理できずにエラーになっています。

参考URL:http://www.php.net/manual/ja/function.mysql-query.php

投稿日時 - 2012-01-07 07:37:29

お礼

早々にお返事を頂きまして誠にありがとうございます!

http://php.net/manual/ja/mysqli.multi-query.php
こちらを参考に
multi_query()を使用するコトで解決致しました!

本当にありがとうございます(^^

投稿日時 - 2012-01-07 18:15:50

ANo.1

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

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

回答(1)

あなたにオススメの質問