如何在MySQL中绑定JSOn对象

时间:2018-04-27 18:58:38

标签: perl

我有一个 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

1 个答案:

答案 0 :(得分:4)

没有JSON_TYPE这样的SQL类型。

MySQL将JSON值视为具有额外语义的字符串。由于您已经将结构编码为JSON字符串,因此在将其绑定为参数时无需执行任何特殊操作 - 您可以放心地将第三个参数保留为bind_param