对mysql数据库操作时,某些情况下乱码(本情况估计应该只属于个别人情况)

    项目环境:

vs2012+ mysql5.1+windows


    今天做项目时,发现程序中对mysql执行添加操作,执行结果正常,更新mysql数据库时,执行发生错误,报错信息如下:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[GateName]='g',[GateType]='杩涘彛' where  [GateID]=4' at line 1



发现中文乱码,但是添加操作中也有中文,且不乱码。于是找到执行的语句为:update GateInfo set [GateName]=@GateName,[GateType]=@GateType where  [GateID]=@GateID       


为了调试本语句,建立存储过程如下:

DELIMITER $$

USE `test1`$$  -- 数据库名称

DROP PROCEDURE IF EXISTS `test`$$  -- 存储过程名称

CREATE DEFINER=`root`@`%` PROCEDURE `test`(
    )
BEGIN
    SET @GateName='y';
    SET @GateType='进出口';
    SET @GateID=4;
update GateInfo set [GateName]=@GateName,[GateType]=@GateType where  [GateID]=@GateID;  --关键语句
    END$$

DELIMITER ;


建立存储过程后报错。

存储过程中把update  语句改成如下格式“UPDATE GateInfo SET GateName=@GateName,GateType=@GateType WHERE  GateID=@GateID;” 正常执行。



分析原因:项目架构是以前做vs+sql server 2008 是用的,换到mysql后,mysql语句中不能有"[" "]"  这样的中括号,导致发生错误,去掉中括号即可。


注意:mysql执行错误后,不要只看mysql的报错信息,上面报错信息中提示是版本可能有问题,如果只按照报错信息进行操作,很可能错误越来越多。  需要考虑两种操作的不同地方,根据不同地方去查找原因。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值