0

我在发布之前进行了足够的搜索。

我的表结构:

援助| 出价 | 西德 | 做了|

其中aidbid一起是主键

当我更新cid使用 a的值时,where clause for aid, bid我还想did value获得updated row.

像这样的东西:

$this->db->set('cid', 1, FALSE)
        ->where(array(
                    'aid'   => $a_id,
                    'bid'   => $b_id
                ))
        ->update('my_table')
        ->select('did');

上面的查询说:

致命错误:在...中的非对象上调用成员函数 select()

我试过这个:

如何获取 MySQL 中最后更新行的 ID?

这就像3个查询。

4

1 回答 1

0

我建议获取您要更新的值,将它们的 ID 存储在一个数组中,然后UPDATE使用WHERE id IN (1, 2, ...).

MySQL 不支持您尝试执行的操作。您需要运行至少 2 个查询,并且由于您是第一次获取值并且已经知道要更新哪些值,因此您还可以重新创建新行及其值,而无需在UPDATE.

在您给定的示例中:

$this->db->set('cid', 1, FALSE)
        ->where(array(
                    'aid'   => $a_id,
                    'bid'   => $b_id
                ))
        ->update('my_table')
        ->select('did');

set()where()并且还select()返回一个基于查询的对象。但是,返回一个值,该值是结果,并且update()没有调用函数,也没有调用select()函数。set()where()

于 2013-08-05T07:10:44.823 回答