【问题标题】:CONCAT() function in a SELECT field listSELECT 字段列表中的 CONCAT() 函数
【发布时间】:2010-12-23 14:56:05
【问题描述】:

我正在使用 CodeIgniter 的活动记录功能,但我无法选择我感兴趣的数据。

我想被选中的是:

CONCAT(t.field1, ' / ', t.field2) AS `finalValue`

所以我添加了这个:

$this->db->select('CONCAT(t.field1, \' / \', t.field2) AS `finalValue`');

但这是生成的查询字符串:

CONCAT(t.field1, `'` / ', `t`.`field2)` AS `finalValue`

这是一个错误吗?我是否指定错误?

【问题讨论】:

    标签: php database codeigniter activerecord


    【解决方案1】:

    您实际上可以通过将 FALSE 作为 'select' 方法的第二个参数传递来关闭默认转义机制,这是使用 MySQL 函数时奇怪问题的根源。

    请注意,如果您这样做,您必须自己处理逃跑。

    哦,你可以使用双引号来减少你正在进行的所有转义。

    【讨论】:

      【解决方案2】:

      改为这样做?

      $this->db->select("CONCAT(t.field1, ' / ', t.field2) AS `finalValue`");
      

      I.E 外部双引号以避免难看的转义

      【讨论】:

      • 这只是一个选择问题,并不能解决所问的问题,
      • @Michael 不是只是选择的问题,它被认为是好的做法(上面的 James 也提到了这一点)
      猜你喜欢
      • 1970-01-01
      • 2014-04-18
      • 2019-03-12
      • 1970-01-01
      • 2013-05-10
      • 2021-11-28
      • 2017-01-08
      • 2011-04-24
      • 1970-01-01
      相关资源
      最近更新 更多