【问题标题】:How to insert double quoted string value in database using codeigniter active records?如何使用 codeigniter 活动记录在数据库中插入双引号字符串值?
【发布时间】: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


【解决方案1】:

只需像下面这样制作变量,

$data = array( 'course_desc'   => '"'.$course_desc.'"' )

请告诉我这是否有帮助。

【讨论】:

    【解决方案2】:

    如果你在用双引号(“)插入数据时遇到问题,我建议你尝试使用替换。例如:

    $data = array(
         'course_id'     => '',
         'tennant_id'    => $tennant_email,
         'display_public'=> $is_public,
         'course_name'   => $course_name,
         'course_desc'   => str_replace('"','xxxxx',$course_desc)),
         'private_url'   => $concat_url,
         'filename'      => $filename
    
                  );
    
            $this->db->insert('courses', $data);
    

    在数据库中选择/获取它时反之亦然。

    我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      你可以用'\'

      $data = array(
      
          'course_desc'   => "\"$course_desc\""
      
      }
      

      【讨论】:

        猜你喜欢
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-22
        • 1970-01-01
        • 2014-12-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多