我刚开始编写检查多个表的大型查询。我有这个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());
我做错了什么?
答案 0 :(得分:4)
您无法将更新语句合并在一起。您只需将其拆分为单独的命令即可。或者换句话说,运行两个查询,一个用于公司,一个用于用户。
答案 1 :(得分: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";
OR
您可以选择并找到存在$ 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'
}