Я хочу установить переменную для использования в запросе mysqli. Это не работает. До mysqli я использовал для набора запросов. Я играл с db-> multi_query ($ sql) без везения. Кто-нибудь есть идея, как сделать эту работу, включая инструкцию set?
$sql = 'SET @rownum := 0;'; $sql .= 'SELECT @rownum :=@rownum + 1 AS Rank, User_Id, COUNT(User_ID) AS Block_Count FROM Block_Owners; $stmt = $db->prepare($sql); $stmt->bind_param('ii', $world, $userId); // execute the query $stmt->execute();
Сделайте это в двух отдельных запросах:
$db->query('SET @rownum := 0'); $sql = 'SELECT @rownum :=@rownum + 1 AS Rank, User_Id, COUNT(User_ID) AS Block_Count FROM Block_Owners' $stmt = $db->prepare($sql); $stmt->bind_param('ii', $world, $userId); $stmt->execute();
Обратите внимание, однако, что запрос, который вы хотите запустить, всегда будет возвращать одну строку (с Rank = 1
), поскольку вы используете агрегированную функцию без GROUP BY
.