Mysqli несколько запросов PHP

Я хочу использовать функцию PHP MySQL, чтобы запросить это:

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(ссылка, запрос); функция, но не повезло, любая помощь?

1 ответ

Нет необходимости использовать несколько запросов, и вы рискуете получить проблемы с безопасностью всякий раз, когда используете несколько запросов.

Значения для ваших пользовательских переменных @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);

Другие вопросы по тегам