我想知道下面代码背后的原因
$this->db->select("DATE_FORMAT(`current_date`, '%M-%d-%Y' ) as date_human", FALSE);
当我使用上面的代码时,它返回结果July-09-2015
,现在我想知道FALSE
在这里的用途是什么。因为我在不添加FALSE的情况下得到了相同的结果。
我已经引用了[链接](日期格式与codeigniter点火器)。在这里,专家说它将阻止CI尝试自动保护这些名称。
编辑:当我使用$this->db->last_query
时,我得到的查询是:
SELECT *, DATE_FORMAT(current_date, '%M-%d-%Y' ) as date_human FROM `user_data` WHERE id = '57'
当同时使用FALSE和不使用FALSE时。
我想知道它们的区别以及FALSE的用法。
当您使用$this->db->select()
CodeIgniter自动保护您的列名。
如果将其设置为FALSE
, CodeIgniter将不尝试用backticks
保护字段或表名。
当你需要一个复合选择语句时,这是很有用的。
例子$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE);
$query = $this->db->get('mytable');
读取CodeIgniter active_record.html#select
$this->db->select()
接受第二个可选参数。如果将其设置为FALSE
, CodeIgniter将不会尝试保护您的字段或表名。如果您需要一个复合选择语句,其中字段的自动转义可能会破坏它们,这是有用的。
。
$this->db->select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4) AS amount_paid', FALSE);
$query = $this->db->get('mytable');
参考:http://www.codeigniter.com/user_guide/database/query_builder.html