博主这个菜鸡,遇到了一个mysql动态存值的问题,存入二进制文件,然后使用CONCAT()进行拼接存储,一直报错无法存储的问题, 博主测试所得问题的原因是因为将传入的blob解析为了string然后整个语句就报.
无法执行将二进制存储的存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `test_bin`(in bin BLOB)
BEGIN
SET @test=CONCAT('INSERT INTO test_bintable SET binxxx ',bin);
PREPARE temp FROM @test;
EXECUTE temp ;
END
解决方案:
CREATE DEFINER=`root`@`localhost` PROCEDURE `test_bin`(in bin BLOB)
BEGIN
SET @test=CONCAT('INSERT INTO test_bintable SET binxxx = ?');
SET @pa1=bin;
PREPARE temp FROM @test;
EXECUTE temp USING @pa1;
END
仔细分析一下其实很简单,就是类似装箱拆箱的操作,(博主的愚见)
就不多说了,博主菜鸡, 多亏大神带!!!!