首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用带有SQL函数的insert_string查询助手?

问如何使用带有SQL函数的insert_string查询助手?
EN

Stack Overflow用户
提问于 2019-08-14 04:57:53
回答 1查看 158关注 0票数 0

我的数据库使用UUID作为主键。当我插入到DB (mariaDB)中时,我需要做:

代码语言:javascript
复制
insert into table_name (id, parent_id, name,... etc. )
values (UUID_TO_BIN(UUID()), 'a UUID', 'record name', .etc)

我想使用CI的insert_string函数,但是这个数组:

代码语言:javascript
复制
$data = array(
    'id' => 'UUID_TO_BIN(UUID())',
    'name' => 'record name',
    'parent_id' => 'UUID_TO_BIN(' . $parent_id . ')'
);

$this->db->insert_string('table_name',$data);

...I认为不会起作用,因为每个结果都被转义,因此CI将转义包括函数在内的整个文本,而不仅仅是parent_id值中UUID_TO_BIN函数内部的内容。

我正在尝试弄清楚parent_id是否有可能运行给定的函数。否则,我想最简单的方法是在PHP中从十六进制转换为BIN,但这会破坏SQL吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-14 11:32:38

您可以使用set()方法,该方法接受可选的第三个参数($escape),如果在id列上设置为FALSE,该方法将防止数据被转义。

代码语言:javascript
复制
$data = array(
    // 'id' => 'UUID_TO_BIN(UUID())',
    'name' => 'record name',
    'parent_id' => 'UUID_TO_BIN(' . $parent_id . ')'
);

//set id column value as UUID
$this->db->set('id', 'UUID_TO_BIN(UUID())', FALSE);

$this->db->insert_string('table_name', $data);

more on set() method。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57485222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档