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;');

不要忘记在第二条指令中转义 sql

于 2012-04-12T07:19:37.367 回答