2011-05-25 167 views
4

我爲我的MySQL版本使用5.1.41-3ubuntu12.10。立即更新兩個表格

UPDATE profiledata SET aboutyou = '$aboutyou', quotes = '$quotes' 
WHERE uid = '$sess_uid' 

UPDATE profileprivacy 
SET aboutyouPrivacy = '$aboutyouPrivacy', quotesPrivacy = '$quotesPrivacy' 
WHERE uid='$sess_uid' 

$ sess_uid是上是相同的。我想知道是否可以將兩個MySQL查詢合併到一個mysql_query中。

我在想這將是類似SET profiledata.aboutyou = 'Just a developer.',不是很確定。

+1

相當肯定你不能。 – drudge 2011-05-25 17:55:08

+0

最好你可以使用'mysqli :: multi_query' http://php.net/manual/en/mysqli.multi-query.php發送一個命令到服務器而不是兩個單獨的調用,假設你的PHP安裝支持' mysqli'。 – 2011-05-25 17:58:18

回答

7

您可以使用這樣的聯接:

$query = "UPDATE profiledata t1 
JOIN profileprivacy t2 ON (t1.uid = t2.uid) 
SET t1.aboutyou = '$aboutyou', 
    t1.quotes = '$quotes', 
    t2.aboutyouPrivacy = '$aboutyouPrivacy', 
    t2.quotesPrivacy = '$quotesPrivacy' 
WHERE t1.uid = '$sess_uid'"; 
1

MySQL有多表更新支持:http://dev.mysql.com/doc/refman/5.0/en/update.html

UPDATE profiledata, profileprivacy 
SET aboutYou = ..., aboutyouPrivacy = ... 
WHERE (profiledata.uid = $sess_uid) OR (aboutyouPrivacy.uid = $sess_uid) 

或類似的東西應該做的伎倆。