我知道下面的代码是开放注射的,但我不确定解决它的最佳方法是什么。是否最好重复$new_id
行,还是应该做更多的事情?
控制器:
public function ajax_update_product_youtube()
{
if($_POST)
{
$id = $_POST['id'];
$new_id = mysql_real_escape_string(trim($_POST['new_id']));
$table = SITE_REF.'_ps_products';
if($new_id != "")
{
$this->Ps_products_model->update_product_youtube($table, $id, $new_id);
}
}
}
型号:
public function update_product_youtube($table, $id, $new_id)
{
$table = $this->_table_products;
$this->db->query("
UPDATE $table SET $table.youtube='$new_id' WHERE $table.id='$id'
");
}
答案 0 :(得分:1)
使用CodeIgniter的Active Record(查询生成器3.0版),或使用查询绑定。
有效记录:
$this->db->where('id', $id)->update($table, array('youtube' => $new_id));
查询绑定:
$this->db->query("UPDATE {$table} SET youtube = ? WHERE id = ?", array($new_id, $id));
您还应该: