1

我是编写检查多个表的更大查询的新手。我有这个SELECT运行良好的查询:

$result = mysql_query("SELECT * FROM companies WHERE email='$email' UNION SELECT * FROM users WHERE email='$email'") or die(mysql_error());

但是,我正在使用这个UPDATE不起作用的查询进行编辑页面:

$sql = mysql_query("UPDATE companies SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email' UNION UPDATE users SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email'") or die(mysql_error());

我究竟做错了什么?

4

2 回答 2

4

您不能将更新语句合并在一起。您只需将其拆分为单独的命令。或者换句话说,运行两个查询,一个针对公司,一个针对用户。

于 2012-10-06T23:03:45.740 回答
0

根据您的问题,您可以更新两个更新

$sql1="UPDATE companies SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email'";
$sql2="UPDATE users SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email";

或者

您可以选择并找到 $email 所在的表。

sql1="select name form user where email=$email "
sql2="select name form companies where email=$email "
if(count($sql1>0)){
UPDATE user SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email'
}
if(count($sql2>0)){
UPDATE companies SET name='$name',address='$address',city='$city',state='$state',zip='$zip' WHERE email='$email'
}
于 2015-10-10T10:45:13.057 回答