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
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
このQ&Aは役に立ちましたか?
0人が「このQ&Aが役に立った」と投票しています
回答(1)