SET değişken statment ile Mysqli sorgu (yani birden fazla sorgular)

1 Cevap php

Ben bir mysqli sorguda kullanmak için bir değişkeni ayarlamak istiyorum. Bu oldukça çalışmıyor. Ben sorgu aramaları ayarlamak için kullanılan MySQLi önce. Ben hayır şans ile db-> multi_query ($ sql) ile yaklaşık oynadı. Herkes orada bir set ifadesi de dahil olmak üzere bu işi yapmak için nasıl bir fikriniz var mı?

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

1 Cevap

Iki ayrı sorgu bunu:

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

Eğer GROUP BY olmayan bir toplama işlevi kullanılarak bu yana çalıştırmak istediğiniz sorgu her zaman (Rank = 1) ile tek bir satır dönecektir, ancak, unutmayın.