Mysqli multi query PHP


Mysqli multi query PHP

我想使用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);