$sql="
SELECT @a:=id FROM csdn order by id asc limit 30,1;
SELECT @b:=id FROM csdn order by id asc limit 60,1;
SELECT * from csdn where id>@a and id<@b;
";
$result=mysql_query($sql);
while($rs = @mysql_fetch_array($result,MYSQL_ASSOC)){//空のレコード
echo "< ;li>".$rs['name'];
}
?>
上記は空のレコードを返します。
phpmyadminに$sqlの内容を別途入れると正常に実行されるので、SQL文は正しいはずです 接続方法が間違っていると推測されます
表示できるようにする書き方を教えてください。あなた!
Declare @top2 int
select @top2=min(mid ) from ( select top 1 mid from [musicbox] where riding='87503' order by mid desc) as db2
SELECT 上位 20 Mid,rid,mname,mauthor,madddate FROM [musicbox] as a whererid='87503' and a.mid <@top2
これを実現するために php を使用するにはどうすればよいですか?ありがとう!
これは SQL 攻撃を防ぐための PHP の対策です。変更しないでください。
あなたの Web サイトが攻撃されるのは望ましくないと思います
またはストアド プロシージャを使用することもできます ~
mysql_query は複数の SQL の同時実行をサポートしていません。 ; で区切って個別に実行する必要があります
mysql_query("SELECT @a:=id FROM csdn order by id asc limit 30,1");
mysql_query("SELECT @b:=id FROM csdn order by id) asc limit 60,1");
mysql_query("SELECT * from csdn where id>@a and id
mysql_query複数のクエリの同時実行 SQL はサポートされていません。
一度に 1 つだけ実行できます。または、SQL ステートメントを記述するだけです。
LZが望んでいることは達成できない。
ストアド プロシージャの実行を追加することをお勧めします。
達成することは不可能ではありませんが、その形式ではありません。for() ループを使用して、順番に実行してみてください
5 階の方法がアイデアに最も近いですが、効率は非常に貧しい 。
300 万のデータから 500,000 項目からページ読み取りを実行します。
PHP を使用して、in(**ids**) メソッドと id>**Maxid** の 2 つの SQL ステートメントをそれぞれ実行します。これには 200 ~ 300 ミリ秒かかります。
5階の方法ではSQL文を3回実行すると400~600ミリ秒かかります。
この考えはやめましょう。助けてくれてありがとう、ありがとう!
&allowMultiQueries=true
MySQL で複数のステートメントを実行するには、allowMultiQueries パラメータを true に設定する必要があります。これは MySQL Connector/J 3.1.1 以降でのみサポートされます。
接続を確立するときに次のように設定するだけです: jdbc:mysql://127.0.0.1/sample?user=root&password=&allowMultiQueries=true
個人的なテストと完璧なソリューション