2

PHP を使用して、この SQL クエリによって返される行を取得するにはどうすればよいですか。

SET @r := (SELECT ROUND(RAND() * (SELECT COUNT(*) FROM mytable)));
SET @sql := CONCAT('SELECT * FROM mytable LIMIT ', @r, ', 1');
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;

上記と同じに設定$queryしてから通常どおりに実行しても、結果mysql_query($query)は返されません。

4

1 に答える 1

0

このようにして、機能するかどうかを確認します

mysql_query('SET @r := (SELECT ROUND(RAND() * (SELECT COUNT(*) FROM mytable)));');
mysql_query('SET @sql := CONCAT('SELECT * FROM mytable LIMIT ', @r, ', 1');');
$resource = mysql_query('PREPARE stmt1 FROM @sql;EXECUTE stmt1;');

2番目の命令でSQLをエスケープすることを忘れないでください

于 2012-04-12T07:19:37.367 に答える