【发布时间】:2013-09-29 19:54:00
【问题描述】:
我知道 codeigniter 会自动转义字符以防止可能的 sql 注入。但是我怎么能用双引号将字符串值存储在数据库中。这可能吗?或者是否有一个函数或条件可以忽略双引号并仍然使用codeigniter活动记录将其存储在数据库中?我试图在数据库中存储一个双引号值,但它无法存储该值。例如。我想使用变量$course_desc 将这个值“计算机课程”存储在数据库中,但我的数据库中的描述字段不存储任何内容。我将如何做到这一点?这是我用于插入值的模型活动记录代码:
型号:
public function insert_file($filename,$course_name,$course_desc,$tennant_email,$is_public,$concat_url)
{
$data = array(
'course_id' => '',
'tennant_id' => $tennant_email,
'display_public'=> $is_public,
'course_name' => $course_name,
'course_desc' => $course_desc,
'private_url' => $concat_url,
'filename' => $filename
);
$this->db->insert('courses', $data);
return true;
}
【问题讨论】:
-
带有 AR 的查询会自动转义,因此引号应该不是问题。如果你 var_dump($data) 值用引号括起来?
-
鉴于您的示例数据,这应该可以正常工作。 $this->db->insert('courses', $data); 是什么意思?返回?尝试将其作为下一行: echo $this->db->last_query();
-
请发布您的查询。如果您在描述中使用双引号,那么它应该可以工作。没问题。
-
是的,AR 自动转义字符。但问题是,每当我想保存假设有一个带有双引号的字符串值的 $course_desc 变量时,它就不会被保存。我想为 $course_desc 保存一个带有双引号的字符串值,当它实际保存在我的 phpmyadmin 的数据库中但它从未存储在那里时。
-
例如“我想保存这个字符串,包括数据库中的引号”。变量 $course_desc 是分配用于存储此值的变量,包括双引号。
标签: php mysql codeigniter