Codeigniter 编码点火器4';更新';来自控制器
我很困惑 此函数运行正常,不会抛出任何错误。。。但它不会更新我表中的行 我哪里出错了 控制器:Codeigniter 编码点火器4';更新';来自控制器,codeigniter,controller,sql-update,query-builder,codeigniter-4,Codeigniter,Controller,Sql Update,Query Builder,Codeigniter 4,我很困惑 此函数运行正常,不会抛出任何错误。。。但它不会更新我表中的行 我哪里出错了 控制器: public function update() { $model = new StoreModel(); $model->where('merchant', 'Klip Shop')->set('availability', 'out of stock')->update(); }
public function update()
{
$model = new StoreModel();
$model->where('merchant', 'Klip Shop')->set('availability', 'out of stock')->update();
}
型号:
class StoreModel extends Model
{
protected $table = 'shop';
}
由于$model->where('merchant','Klip Shop')->get()
不返回任何内容,这意味着您没有任何可以更新的数据
您需要先插入一行
public function update()
{
$model = new StoreModel();
$model->update();
}
和一个模型:
class StoreModel extends Model
{
$db = \Config\Database::connect();
$model= $db->table('shop');
function update(){
$model->where('merchant', 'Klip Shop')->set('availability', 'out of stock')->update();
}
}
模型存在
$allowedFields
问题,因此不允许更新任何内容。是否$model->where('merchant','Klip Shop')->get()
返回任何内容?没有什么。当我var_dump
它时,甚至没有“NULL”。我已经更新了我的答案,在查看了您的控制器和模型之后,希望这现在能起作用,这就是为什么我如此困惑的原因。。。我的数据库中有成千上万个匹配的条目需要更新。没有拼写错误或任何东西。你能创建一个小的sqlfiddle吗?比如:就是这样:谢谢你的帮助!检查:左侧面板现在更新您现有的商户,如果您将商户名称更改为一个不存在的名称,它将无法更新并给出错误,因此CI 4.x save()函数实际上会生成以下SQL:感谢您花费所有时间帮助我完成此项工作。非常感谢!您在MySQL中编写的代码与我最初为控制器编写的代码不一样吗?我为我的控制器编写的代码没有更新数据,但它看起来与您的逻辑相同。。。我需要在控制器中更改什么才能进行更新?