MySQL解决CONCAT()存储过程动态传入二进制文件BLOB无法识别报错

       博主这个菜鸡,遇到了一个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

仔细分析一下其实很简单,就是类似装箱拆箱的操作,(博主的愚见)

就不多说了,博主菜鸡,  多亏大神带!!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值