更新查询,如何从其他表中获取列名

时间:2014-06-28 12:03:02

标签: php mysql sql

我不知道是否可能,但这就是我想要的:

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中。

2 个答案:

答案 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 = ?