【问题标题】:codeigniter conditions where when field name contains space字段名称包含空格时的codeigniter条件
【发布时间】:2017-07-18 22:33:48
【问题描述】:

如果我有这样的活动记录,我在使用活动记录时遇到问题

$data_array = array(
  'Code Employee' => 'AC01',
  'Status Employee' => 'Y'
);

$this->db->where($data_array);
$this->db->get('masteremp');
echo $this->db->last_query();

//Output query will be
SELECT * FROM masteremp WHERE `Code` `Employee` = 'AC01' AND `Status` `Employee` = 'Y'

我尝试编辑 DB_query_builder 并将其添加到第 2430 行

if(!empty($conditions)){
  for($index = 0; $index < sizeof($conditions); $index++){
    if (strpos($conditions[$index], '` `') !== false) {
      $conditions[$index] = str_replace('` `', ' ', $conditions[$index]);
    }
  }
}

你有空间字段的方法吗?我认为我的方法效率不高..谢谢..

【问题讨论】:

  • 最初是这样的:- $data_array = array( 'CodeEmployee' =&gt; 'AC01', 'StatusEmployee' =&gt; 'Y' );

标签: php codeigniter activerecord


【解决方案1】:

IN codeigniter 你可以转义值和标识符。像这样尝试一次..

替换

$this->db->where($data_array);

$this->db->where($data_array,TRUE);//second parameter as TRUE

然后

//Output query will be
SELECT * FROM masteremp WHERE `Code Employee` = 'AC01' AND `Status Employee` = 'Y'

【讨论】:

  • 谢谢,我不知道有参数可以保护您的字段名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多