用查询构造器如何在语句中调用mysql函数?
本帖最后由 hyperlau 于 2017-6-26 12:35 编辑例如我要插入时间到一个字段,需要调用mysql的now()函数,如何在查询构造器里写?难道只能先用query得到结果后再用查询构造器吗?那样的话就是调用两次数据库了,如何在一次数据库查询中解决?
谢谢!
query() 这个可以写任何 SQL 语句。 本帖最后由 hyperlau 于 2017-6-27 10:33 编辑
Hex 发表于 2017-6-26 15:39
query() 这个可以写任何 SQL 语句。
例如我要插入一行数据,代码差不多像这样:
$data=array(
'name'=>'jack',
'time'=>'now()'
);
$this->db->insert('table',$data);
那now() 会被转义。
我要实现这个需求的话就只能先执行:
$now=$this->db->query('select now()')->row_array()['now()'];
然后把$now传给$data['time']再执行insert(),
但这就相当于有两次mysql调用了,如何直接在$this->db->insert()里调用now()? hyperlau 发表于 2017-6-27 10:27
例如我要插入一行数据,代码差不多像这样:
$data=array(
'name'=>'jack',
$this->db->insert() 这是 querybuilder,这个会转义,想不转义就直接使用 $this->db->query() 这个可以写正常的 SQL 语句,也就是你在 phpmyadmin 里测试 ok 的都可以直接用。 本帖最后由 Michael锐生 于 2017-6-27 11:03 编辑
需要转译的字段单独写set就可以,其他按原来的写
$this->db->set('time', 'now()', FALSE)->insert('table', $otherData); Michael锐生 发表于 2017-6-27 11:01
需要转译的字段单独写set就可以,其他按原来的写
哦哦,明白了!非常感谢!!
页:
[1]