我想知道在将片段发送到模型之前的最佳做法是什么。
例如:
从中获取segment1 BASE_URL /控制器/ QUERY_DETAIL / SEGMENT1
在我的控制器上
public function query_detail($segment1)
{
//what are the best practice before I send the segment1 to the Model?
$this->load->model('model');
$this->model->query($segment1);
......
}
我希望我解释清楚。谢谢你的帮助。
答案 0 :(得分:1)
如果您指的是向模型发送数据以运行插入或使用该数据进行更新,那么最佳做法是在用户提交输入时验证输入。然后,由于codeigniter在用作绑定数据时会清理数据,因此您可以像这样运行插入;
# This would be in your model...not your controller
function store_data($post_data) {
$sql = "INSERT INTO some_table set (fld1, fld2, fld3) VALUES (?, ?, ?)";
$binds = array($post_data['fld1'], $post_data['fld2'], $post_data['fld3']);
$this-db->query($sql, $binds);
}
或者,如果所有传入表单的输入标记名称与您的数据库列名称匹配,那么您可以简单地执行此操作;
# This would be in your model...not your controller
function store_data($post_data) {
$sql = "INSERT INTO some_table set (fld1, fld2, fld3) VALUES (?, ?, ?)";
$binds = array($post_data);
$this-db->query($sql, $binds);
}
或者这个;
# This would be in your model...not your controller
# Using ActiveRecord
function store_data($post_data) {
$this->db->insert('some_table', $post_data);
}