我有一个 MySQL 存储过程sp_foo(),其中包含以下代码:
text.replace(/^(?!(^$)|\<(h[0-9])\>)(.*)$/mg, function(match, ...submatches) {
return '<p>' + submatches[2] + '</p>';
});
在Perl中,如何将 Perl JSON对象绑定到相应的存储过程的JSON FDs 对象?
我尝试过不同的类型(包括 JSON_TYPE ),但无济于事:
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_foo`(
in p_env varchar(45),
in p_host varchar(45),
in FDs JSON)
我得到的错误看起来像:
my $logFD = {
uid => 'iib',
pid => 29115,
fdCount => 477,
fdCountMax => 10240,
program => 'DataFlowEngine',
parameters => 'DFIB01 da3e3470-a044-4ba6-bf92-f153d1398fdc Logger'
};
my $logFD_json = encode_json $logFD;
$sth->bind_param( $i++, $logFD_json, JSON_TYPE); # <-- this line
答案 0 :(得分:4)
没有JSON_TYPE
这样的SQL类型。
MySQL将JSON值视为具有额外语义的字符串。由于您已经将结构编码为JSON字符串,因此在将其绑定为参数时无需执行任何特殊操作 - 您可以放心地将第三个参数保留为bind_param
。