首页 > 解决方案 > php mysql更新两个表不起作用

问题描述

我正在使用两个表进行更新,但由于某种原因它不起作用并且没有产生错误,所以我找不到问题。有人可以对此有所了解吗?为什么这不起作用?

$upd = "
UPDATE table t
     , images i 
   SET t.image_blob = i.image_blob 
 WHERE t.record_id='".$rid."' 
   AND i.image_id='".$iid."'";<br>
$dbh->exec($upd);

换句话说,我想从图像表(其中image_id=$iid)和更新表(t)中获取特定记录record_id=$rid

标签: phpmysql

解决方案


在您的代码中,首先您说您要更新 2 个表,但随后您只更新表 t。如果表与外键无关,您可以尝试下一个:

$upd = "
UPDATE table t
   SET t.image_blob = (SELECT i.image_blob FROM images i WHERE i.image_id='".$iid."') 
 WHERE t.record_id='".$rid."'";
$dbh->exec($upd);

否则,您可以尝试使用“FROM”和“JOIN's”根据多个表 SQL Server 2005,2008 中的数据更新单个表中给出的解决方案


推荐阅读