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