2012-07-27 89 views
-2

我問了一個類似的問題here但我意識到這個例子不足以滿足我的需求。這裏是我的新問題:如何在mysqli_multi_query中傳遞變量?

我想從mysqli查詢設置變量number。並在下一個查詢中使用該變量。我嘗試了以下查詢,但徒勞無功。什麼是正確的方式?

mysqli_multi_query($mysqli, "COUNT(fruits) FROM eatables as num SET @number= num; UPDATE fruits SET fruits = @number") or die('</br>mySqli Error</br>'); 

這裏是樣本SQL數據庫:

table eatables: 

#fruits #numbers 
apple  null 
apple  null 
grapes  null 
mango  null 
pears  null 
grapes  null 

查詢後,它應該是

#fruits #numbers 
apple  3 
apple  3 
grapes  2 
mango  1 
pears  1 
grapes  2 
+0

可能重複的[如何在mysqli_multi_query中傳遞變量?](http://stackoverflow.com/questions/11692586/how-to-pass-variable-in-mysqli-multi-query) – Ibu 2012-07-27 17:50:55

+0

大聲笑,我問題! – 2012-07-27 17:58:45

+1

是的,它是你以前的問題的確切副本 – Ibu 2012-07-27 18:11:21

回答

1

多查詢不需要你的情況,
做一個內部聯接更新會做

update eatables 
inner join (select fruits, count(*) as total from eatables group by fruits) as b 
on eatables.fruits = b.fruits 
set eatables.numbers = b.total 
+0

其不工作:( – 2012-07-27 19:58:28

0

你應該展示更多的代碼上下文,儘管它聽起來像你想要做的不是如何使用mysqli_multi_query。它旨在用於執行一組不同的查詢,這些查詢通過字符串傳遞,並使您能夠獨立處理每個結果集。它不是設計用於循環查找相同查詢的位置,而是在執行前面的語句時更改SQL語句的次數。