如何将两个查询放在一个mysql_query中?

问题描述:

我试图做这样的事情:如何将两个查询放在一个mysql_query中?

mysql_query(" 
    UPDATE name SET money = money + 1; 
    UPDATE surname SET money = money + 1; 
"); 

,但它不工作。

这只是一个例子,但我的问题是:我怎样才能把两个或更多的查询在一个mysql_query

+0

什么是 “水木清华” 是什么意思? – 2010-01-01 16:02:04

http://docs.php.net/mysql_query说:

的mysql_query()发送一个唯一的查询( 多个查询,不支持)当前激活的数据库与指定link_identifier关联的服务器上。

但你可能会感兴趣的mysqli::multi_query

执行它们由分号连接起来的一个或多个查询。

您应该使用事务进行查询,这些查询需要以原子方式进行,我怀疑这些查询可能会发生。

这可以使用MySQLi接口,特别是mysqli_multi_query()来完成。 http://ca3.php.net/manual/en/mysqli.multi-query.php

需要注意的是,在使用此功能时,您需要特别小心,因为任何SQL注入攻击都会有更广泛的影响。

+0

'mysql_multi_query()'应该是'mysql * i * _multi_query()',不是吗? – 2010-01-02 16:28:24

+0

是的,谢谢。我至少得到了链接:) – preinheimer 2010-01-02 21:15:33

或者你可以试试这个...

$query1 ="UPDATE name SET money = money + 1;"; 
$query2 ="UPDATE surname SET money = money + 1"; 

mysql_query($query1,$query2) or die(mysql_error()); 
+0

这是行不通的。 mysql_query的第二个参数是'resource',而不是'string'。 – MrLore 2014-07-26 03:48:14