2010-01-01 55 views
4

我試圖做這樣的事情:如何將兩個查詢放在一個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

回答

12

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

的mysql_query()發送一個唯一的查詢( 多個查詢,不支持)當前激活的數據庫與指定link_identifier關聯的服務器上。

但你可能會感興趣的mysqli::multi_query

執行它們由分號連接起來的一個或多個查詢。
4

您應該使用事務進行查詢,這些查詢需要以原子方式進行,我懷疑這些查詢可能會發生。

0

這可以使用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

-3

或者你可以試試這個...

$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