2011-05-25 80 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) 

或类似的东西应该做的伎俩。