2012-07-27 40 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语句的次数。