我不知道是否可能,但这就是我想要的:
UPDATE `tbl_users` SET (SELECT `category` FROM `tbl_items` WHERE id = ?) = (SELECT `item` FROM `tbl_items` WHERE id = ?) WHERE id = ?
但这不可能在PHP中出现此错误:
致命错误:在。
中的非对象上调用成员函数bind_param()
我想更新tbl_users中的列,该列的名称位于tbl_items中。
答案 0 :(得分:1)
我不确定我是否理解了您的问题,但是您可以先进行第一次查询,然后使用该查询的结果进行第二次查询吗?这样:
"SELECT `category`, `item` FROM `tbl_items` WHERE `id`=?"
然后使用结果(假设行保存在$row
中):
"UPDATE `tbl_users` SET `".$row['category']."` = '".$row['item']."' WHERE `id`=?
答案 1 :(得分:0)
你可以在一个声明中使用它。你不需要两个查询和获取等等。
UPDATE `tbl_users`
INNER JOIN `tbl_items` ON `tbl_users`.id = `tbl_items`.id
SET `tbl_items`.`category` = `tbl_items`.`item`
WHERE `tbl_users`.id = ?