我想使用php mysqli函数来查询这个:
SET @rownum = 0, @rank = 1, @prev_val = NULL;
SELECT @rownum := @rownum + 1 AS row,
@rank := IF(@prev_val!=score,@rownum,@rank) AS rank,
userid,
@prev_val := score AS score
FROM (
SELECT userid, sum(amount) as score
from leads WHERE date(time) >= '2013-08-15'
group by userid
) exodus_entries
ORDER BY rank asc LIMIT 0,100;
我尝试使用mysqli_query(链接,查询)功能,但没有运气,有什么帮助吗?
无需使用多查询,并且每当使用多查询时,都会面临安全问题的风险。
只要在同一连接中运行这两个查询,用户变量@rownum、@rank@prev_val的值对第二个查询仍然有效。
因此,只需运行mysqli_query("SET ...");
,然后分别运行mysqli_query("SELECT...");
。 这样做要简单得多,并且至少避免了一个安全风险。
关于您的错误:
mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given
始终检查 mysqli_query() 的返回值。 如果出现错误,它将返回 false。 当然,你不能跑mysqli_fetch_row(false);