如何将 insert_string 查询助手与 SQL 函数一起使用?
How to use insert_string query helper with SQL function?
我的数据库使用 UUID 作为主键。当我插入数据库(mariaDB)时,我需要做:
insert into table_name (id, parent_id, name,... etc. )
values (UUID_TO_BIN(UUID()), 'a UUID', 'record name', .etc)
我想使用 CI 的 insert_string 函数,但是这个数组:
$data = array(
'id' => 'UUID_TO_BIN(UUID())',
'name' => 'record name',
'parent_id' => 'UUID_TO_BIN(' . $parent_id . ')'
);
$this->db->insert_string('table_name',$data);
...我认为行不通,因为每个结果都被转义了,所以 CI 将转义包括函数在内的整个文本,而不仅仅是 UUID_TO_BIN 函数中的内容parent_id 值。
我想弄清楚 parent_id 到 运行 给定的函数是否有可能。否则,我想最简单的方法是在 PHP 中从 HEX 转换为 BIN,但这会破坏 SQL 吗?
您可以使用 set()
方法,它接受可选的第三个参数 ($escape
),如果在 id
列上设置为 FALSE,它将防止数据被转义。
$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);
我的数据库使用 UUID 作为主键。当我插入数据库(mariaDB)时,我需要做:
insert into table_name (id, parent_id, name,... etc. )
values (UUID_TO_BIN(UUID()), 'a UUID', 'record name', .etc)
我想使用 CI 的 insert_string 函数,但是这个数组:
$data = array(
'id' => 'UUID_TO_BIN(UUID())',
'name' => 'record name',
'parent_id' => 'UUID_TO_BIN(' . $parent_id . ')'
);
$this->db->insert_string('table_name',$data);
...我认为行不通,因为每个结果都被转义了,所以 CI 将转义包括函数在内的整个文本,而不仅仅是 UUID_TO_BIN 函数中的内容parent_id 值。
我想弄清楚 parent_id 到 运行 给定的函数是否有可能。否则,我想最简单的方法是在 PHP 中从 HEX 转换为 BIN,但这会破坏 SQL 吗?
您可以使用 set()
方法,它接受可选的第三个参数 ($escape
),如果在 id
列上设置为 FALSE,它将防止数据被转义。
$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);