发布之前,我进行了充分的搜索。
我的表结构:
援助|出价| cid |做了|
其中aid
,bid
一起是主键。
当我使用cid
更新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()
我尝试了这个:
How to get ID of the last updated row in MySQL?
就像3个查询。
最佳答案
我建议获取要更新的值,将其ID存储在数组中,并使用UPDATE
运行WHERE id IN (1, 2, ...)
。
MySQL不支持您要执行的操作。您将至少需要运行2个查询,并且由于您是第一次获取值并且已经知道要更新的值,因此您还可以重新创建新行及其值,而无需在。
在给定的示例中:
$this->db->set('cid', 1, FALSE)
->where(array(
'aid' => $a_id,
'bid' => $b_id
))
->update('my_table')
->select('did');
UPDATE
,set()
以及where()
返回基于查询的对象。但是,select()
返回的值是结果,并且没有名为update()
的函数,而不是select()
和set()
。关于mysql - 如何使用单个查询获取最后更新的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18052323/