mysql where 条件中有中文字符,中文编码问题。
最近在搞AU3数据库操作,之前用sqlite 虽然小巧方便,但是多进程同时访问时,容易造成数据库锁定,其它进程访问失败。硬着头皮上了mysql别的基本都搞定了。唯一个问题是 sql 语句中带有 where 语句时,且条件有中文字符时,不管是否满足条件。 返回的结果是空的。 也试过查询前 set names gbk或是 gb2312。不带条件时,返回结果中的中文还可以正常显示。。。 哪位大侠给指点一下,感激不尽。。 例如 select * from tab1 where name='张三';这条在 mysql 命令行中都能返回结果。 但在au3 里无法返回结果。 应该是没有问题。如果是用DLL调用的话,SQL有中文的话,那个长度参数要加长一些, 类似张三,可能要+2 ,例如原来30,则要传32 回复 3# auto非常感谢果然是这个问题.
另外 我是这么解决的.
$len = StringLen(_StringToHex($sql)) /2 ;取实际长度
;MsgBox(0,$len,StringLen($sql))
_MySQL_Real_Query($MysqlConn, $sql,$len)
不知道大家还有没有更好的方法. 你试试这样。。_MySQL_Query($MysqlConn, "set names gbk") _MySQL_Real_Query($MysqlConn,$query,StringLen ($query)+2) 就OK了 呵呵·
页:
[1]