编码点火器:'where clause'中未知的列'stud.id'



>我在'where子句'中遇到错误"未知列'stud.id'。我的文件和数据库中没有任何 stud.id。你认为这有什么问题?我正在使用代码点火器 4。

以下是我在控制器上的代码:

$model = new Mod_Stud();
$id = $this->request->getVar('stud_id');
$data = [
'stud_id' => $this->request->getVar('stud_id'),
'lname' => $this->request->getVar('lname'),
'fname' => $this->request->getVar('fname'),
'mname' => $this->request->getVar('mname'),
];
$save = $model->update($id,$data);
return redirect()->to( base_url('/') );

我的模型的代码:

protected $table = 'stud';
protected $allowedFields = ['stud_id', 'sy', 'dpt', 'grd', 'lname', 'fname', 'mname', 'gender', 'bday', 'birthplace', 'religion', 'nationality', 'country', 'address', 'f_name', 'f_occ', 'm_name', 'm_occ', 'g_name', 'g_rel', 'created_at', 'updated_at'];

我已经修好了!

以下是我使用的代码。

$model->set($data);
$model->where('stud_id', $id);
$model->update();

评论后更新:

你的 update(( 函数中有一个错误的参数序列,它应该是

$save = $model->update($data, ['id' => $id]);

请参阅更新数据

此答案假设您正确加载了查询生成器

可能这会有所帮助,

protected $primaryKey = 'stud_id';

从受保护的$allowedFields中删除stud_id

未知列-stud-id-in-where-子句 :- 此错误是由于数据库引起的...因为使用的ID列在数据库上不可用或不正确..假设我的数据库表中有 3 列 "ID" , "名称" , "NO">

因此,如果需要选择"ID",我必须使用关键字"ID",如果我使用"id">

而不是"ID",则会发生此错误(未知列-stud-id-in-where-clause(。请检查您的数据库列并将它们复制粘贴到您需要选择的 where 子句中。

相关内容

  • 没有找到相关文章

最新更新