找回密码
 加入
搜索
查看: 2975|回复: 4

[系统综合] mysql where 条件中有中文字符,中文编码问题。

[复制链接]
发表于 2014-6-7 20:13:43 | 显示全部楼层 |阅读模式
最近在搞AU3数据库操作,之前用sqlite 虽然小巧方便,但是多进程同时访问时,容易造成数据库锁定,其它进程访问失败。  硬着头皮上了mysql  别的基本都搞定了。唯一个问题是 sql 语句中带有 where 语句时,且条件有中文字符时,不管是否满足条件。 返回的结果是空的。 也试过查询前 set names gbk  或是 gb2312  。  不带条件时,返回结果中的中文还可以正常显示。。。 哪位大侠给指点一下,感激不尽。。
 楼主| 发表于 2014-6-7 20:15:42 | 显示全部楼层
例如 select * from tab1 where name='张三';  这条在 mysql 命令行中都能返回结果。 但在au3 里无法返回结果。
发表于 2014-6-7 22:11:46 | 显示全部楼层
应该是没有问题。如果是用DLL调用的话,SQL有中文的话,那个长度参数要加长一些, 类似张三,可能要+2 ,例如原来30,则要传32

评分

参与人数 2金钱 +40 收起 理由
sdc7 + 10
sunless + 30 谢谢帮忙

查看全部评分

 楼主| 发表于 2014-6-7 23:37:48 | 显示全部楼层
回复 3# auto


    非常感谢  果然是这个问题.  
另外 我是这么解决的.
                $len = StringLen(_StringToHex($sql)) /2   ;取实际长度   
                ;MsgBox(0,$len,StringLen($sql))
                _MySQL_Real_Query($MysqlConn, $sql,$len)
不知道大家还有没有更好的方法.
发表于 2022-7-4 16:50:28 | 显示全部楼层
你试试这样。。_MySQL_Query($MysqlConn, "set names gbk")    _MySQL_Real_Query($MysqlConn,$query,StringLen ($query)+2) 就OK了 呵呵·
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 02:14 , Processed in 0.073097 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表