我不知道这是否可能,但这就是我想要的:
UPDATE `tbl_users` SET (SELECT `category` FROM `tbl_items` WHERE id = ?) = (SELECT `item` FROM `tbl_items` WHERE id = ?) WHERE id = ?
但这不可能,我在 PHP 中收到此错误:
Fatal error: Call to a member function bind_param() on a non-object in.
我想更新 tbl_users 中的列,该列的名称位于 tbl_items 中。
最佳答案
我不确定我是否理解了您的问题,但是您可以执行第一个查询,然后使用该查询的结果执行第二个查询吗?所以:
"SELECT `category`, `item` FROM `tbl_items` WHERE `id`=?"
然后使用结果(假设该行保存在 $row
中):
"UPDATE `tbl_users` SET `".$row['category']."` = '".$row['item']."' WHERE `id`=?
关于php - 更新查询,如何从其他表获取列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466616/