我似乎在用户指南中找不到明确的解释。
在CodeIgniter Active记录中,若要更新数据表数据列,似乎需要执行三件事:(1)确定要更新的记录,(2)定义需要更改的内容,以及(3)提交更改。
不知怎的,不管我怎么看手册,就是弄不清楚。https://www.codeigniter.com/userguide2/database/active_record.html#update
它似乎暗示“set”是关于插入的--这意味着在我的书中向表中添加行。
而“更新”是关于“改变”现有信息。
对我来说唯一有效的方法是同时做这三个动作。
就像这样:
$this->db->where('id',$userid); //selecting the right user
$this->db->set($SubscriptionChoices); //setting the new values to be written
$this->db->update('userprefs'); //Do it. Update table userprefs
3条答案
按热度按时间qcuzuvrc1#
所以你所说的“set”--它只是你正在更新的特定字段和你正在使用的值。就像从一个简单的表单更新一个名称
然后将该数据和记录ID传递给一个方法以进行更新
注意一个小的恼人的细节-如果你更新一个记录-用相同的信息-像在这个例子中,如果有人更新了记录,但名字和姓氏是相同的-那么它将返回'false' -因为什么都没有更新。
所以如果在更新数组中包含一个字段,比如日期时间秒,它总是不同的,那么就不会有这个问题。
kyvafyod2#
现在有点晚了,但其他人可以得到帮助。
您也可以在单个函数中使用它。
但是,您也可以使用提供CRUD功能的以下类来代替它。
https://github.com/avenirer/CodeIgniter-MY_Model
9q78igpj3#
这将通过使用
ci.
模型零件中的set进行更新。