Codeigniter 在查询字符集问题中添加了一些引号



我正在绑定在代码点火器中连接三个表,我在php myadmin中创建的查询已成功执行,但是当我在代码中添加该查询时

它在打印时使用时在查询中显示一些其他字符

enter code here
$this->db->select('*');
  $this->db->from('kra');
  $this->db->query("SET NAMES 'latin1'");
 $this->db->join('users','kra.users_id = users.users_id
 AND users.status="Active"')->join('kra_points',
 'kra.kra_id = kra_points.kra_id 
  AND'." YEAR(kra_application_date) =".'2016'); 
  $this->db->order_by('users_first_name','ASC');
  $this->db->group_by('kra.users_id');
  $query = $this->db->get();
  echo $this->db->last_query();

打印在页面上的查询

enter code here
 SELECT * FROM `kra` JOIN `users` ON `kra`.`users_id` = `users`.`users_id` AND `users`.`status`="Active" JOIN `kra_points` ON `kra`.`kra_id` = `kra_points`.`kra_id` AND `YEAR`(`kra_application_date)` `=2016` GROUP BY  `kra`.`users_id` ORDER BY `users_first_name` ASC

正确的查询

enter code here
SELECT * FROM `kra` JOIN `users` ON `kra`.`users_id` = `users`.`users_id`   AND  `users`.`status`="Active" JOIN `kra_points` ON `kra`.`kra_id` = `kra_points`.`kra_id` AND YEAR(`kra_application_date`) = '2016' GROUP BY `kra`.`users_id` ORDER BY `users_first_name` ASC

Why this query is automatically changed i tried solution which is mentioned in other thread  as below but did not worked for me.
Changed char set and dbcollat values in database.php 
'char_set' => 'latin1',
'dbcollat' => 'latin1_swedish_ci',
Request your suggestions here.

此问题是由代码点火器的自动转义机制引起的。为了阻止包含额外的反引号字符,您必须将false发送到有问题的数据库查询构建器函数的可选转义参数。

在代码中,您提供了以下函数:

  • $this->db->select()
  • $this->db->join()
  • $this->db->order_by()
  • $this->db->group_by()

所有参数都有可选参数,这些参数默认为 null 用于转义数据。这告诉代码点火器转义你发送到函数的任何内容。为了停止它,您必须发送false

$this->db->select('*', false); // Will stop the select portion from being escaped
$this->db->join('join statement', 'TYPE', false); // Will stop joins from being escaped
$this->db->order_by('order by statement', 'DIRECTION', false); // Will stop order by statements from being escaped
$this->db->group_by('group by statement', false); // Will stop group by statements from being escaped

最新更新