sunless 发表于 2014-6-7 20:13:43

mysql where 条件中有中文字符,中文编码问题。

最近在搞AU3数据库操作,之前用sqlite 虽然小巧方便,但是多进程同时访问时,容易造成数据库锁定,其它进程访问失败。硬着头皮上了mysql别的基本都搞定了。唯一个问题是 sql 语句中带有 where 语句时,且条件有中文字符时,不管是否满足条件。 返回的结果是空的。 也试过查询前 set names gbk或是 gb2312。不带条件时,返回结果中的中文还可以正常显示。。。 哪位大侠给指点一下,感激不尽。。

sunless 发表于 2014-6-7 20:15:42

例如 select * from tab1 where name='张三';这条在 mysql 命令行中都能返回结果。 但在au3 里无法返回结果。

auto 发表于 2014-6-7 22:11:46

应该是没有问题。如果是用DLL调用的话,SQL有中文的话,那个长度参数要加长一些, 类似张三,可能要+2 ,例如原来30,则要传32

sunless 发表于 2014-6-7 23:37:48

回复 3# auto


    非常感谢果然是这个问题.
另外 我是这么解决的.
                $len = StringLen(_StringToHex($sql)) /2   ;取实际长度   
                ;MsgBox(0,$len,StringLen($sql))
                _MySQL_Real_Query($MysqlConn, $sql,$len)
不知道大家还有没有更好的方法.

sdc7 发表于 2022-7-4 16:50:28

你试试这样。。_MySQL_Query($MysqlConn, "set names gbk")    _MySQL_Real_Query($MysqlConn,$query,StringLen ($query)+2) 就OK了 呵呵·
页: [1]
查看完整版本: mysql where 条件中有中文字符,中文编码问题。