database - Codeigniter 没有获得 ID 并且更新数据库不起作用
问题描述
我已经使用 Codeigniter 学习了一个简单的更新脚本,但我有一个问题,数据不会更新,因为它没有获取 id。但是当我尝试在 mysql 中使用 SQL 语法运行查询时,它工作并更新了数据。
这是我的桌子(会员):
id | Name | Job | Age
_____________________
1 |Joe |None | 30
2 |Mike |None | 23
3 |Alice |None | 21
这是我通过 id 获取数据的控制器脚本:
public function update_now($id)
{
$name = $this->input->post('name');
$job = $this->input->post('job');
$age = $this->input->post('age');
$query = $this->m_update->update_data($name, $job, $age);
if ($query > 0) {
}
redirect('data_detail');
这是我的模型脚本:
function update_data($name, $job, $age)
{
$query=$this->db->query("update member SET name='$name', job='$job', age='$age' where id='$id'");
}
当我尝试测试脚本时,更改where id=1
它可以工作,但是当我更改它时$id
它不起作用,它没有获取数据 ID。我错过了什么吗?感谢您提供所有解决方案和建议。
解决方案
在您的表单中,您需要使用 url 中的 ID 提交数据,如下所示:
<form method="post" action="<?= base_url("route/$id") ?>">
....
</form>
然后,您必须使用以下内容将该 id 发送到您的模型中:
$data = array(
'name' => $this->input->post('name'),
'job' => $this->input->post('job'),
'age' => $this->input->post('age')
);
$query = $this->m_update->update_data($id, $data);
if ($query) {
redirect('data_detail');
}
此时您的模型应更改为:
function update_data($id, $data) {
return $this->db->where('id', $id)->update("member", $data);
}
有关更多信息,您应该在此处查看用户指南:
推荐阅读
- python - Python Regex - 获取以部分单词开头并以某个字符结尾的子字符串
- c# - 使用 mongodb.driver 2.10.3 连接到 mongodb 服务器时出错
- javascript - 表单验证逻辑问题(使用 React useState Hook)
- javascript - 是否在以下 JavaScript 代码中创建了闭包?
- c# - 无法调试 Azure EventHub 函数
- firebase - 为什么 Cloud Firestore 集合至少需要一个文档?
- javascript - 在浏览器 JavaScript 中,将 csv 文本写入剪贴板时收到错误消息
- python - specutils fit_generic_continuum 在 Spectrum1D 上使用时给出 TypeError
- google-cloud-platform - 如何更改谷歌云 SQL 的时区?
- c# - System.CommandLine 异常处理