2

私は、コードイグナイターがSQLインジェクションの可能性を防ぐために文字を自動的にエスケープすることを知っています。しかし、二重引用符を付けてデータベースに文字列値を保存するにはどうすればよいでしょうか。これは可能ですか?または、二重引用符を無視し、codeigniter アクティブ レコードを使用してデータベースに保存できる関数または条件はありますか? 二重引用符で囲まれた値をデータベースに保存しようとしましたが、値を保存できません。たとえば、変数を使用してこの値「Computer Course」をデータベースに保存したいのです$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;
  }
4

3 に答える 3

1

以下のように変数を作成するだけで、

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

これが役立つかどうか教えてください。

于 2013-09-30T18:54:47.590 に答える
0

「\」を使用できます

$data = array(

    'course_desc'   => "\"$course_desc\""

}
于 2013-12-04T05:38:05.730 に答える
0

二重引用符 (") を使用してデータを挿入する際に問題が発生した場合は、置換を使用することをお勧めします。例:

$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);

データベースでそれを選択/取得するときはその逆です。

これが役立つことを願っています。

于 2013-12-04T05:08:55.243 に答える