马尔斯
发表于 2010-12-16 16:56:11
学习不错 有点体会
kodin
发表于 2010-12-17 19:32:53
MYSQL完全看不懂得飘过。。。
dwilly
发表于 2010-12-18 09:35:53
太复杂,要学的很多
Netfox
发表于 2011-2-10 20:02:16
强烈支持。。。。
yyotan
发表于 2012-4-16 11:54:44
留个脚印,我就要要这个 谢谢
bsjd120
发表于 2012-5-11 14:46:50
协作写哦这些横需要了
liusian0
发表于 2012-5-15 19:54:05
我也遇到类似问题,学习下。
andyloving
发表于 2012-7-31 10:05:57
谢谢分享!
wsfda
发表于 2012-12-20 22:21:43
回复 15# ceoguang
请教:
if _MySQL_Real_Query($MysqlConn, $sMySqlStatement,StringLen($sMySqlStatement) * 2) <> $MYSQL_SUCCESS Then
中的StringLen($sMySqlStatement) * 2是什么意思呢,不加这个,是否可以有其他办法呢
ceoguang
发表于 2012-12-21 18:09:09
回复 25# wsfda
因为包含中文或其它双字节字符时StringLen依然解释成一个字符为一字节
例如StringLen("中文")返回的就是2,而实际应该是4(不包括\0)
如果只用内置函数,除了*2就别无选择了.当然,你可以用_WinAPI_WideCharToMultiByte,那样可以节省很多空间
wsfda
发表于 2012-12-21 18:24:57
回复 26# ceoguang
有点懂了,感谢前辈的指点,
还有一个疑问就是关于_MySQL_Real_Query这个函数的解释,E文太差翻译后也不能完全理解UDF中这个函数的各项参数意义
您在此函数后面追加StringLen($sMySqlStatement) * 2,相对于这个函数,是给他传递了什么样的一个参数呢,可能我的表达有点问题,不知您是理解,请见谅
ceoguang
发表于 2012-12-26 15:46:55
这个函数实际上调用的是MYSQL的C API
第一个参数是MYSQL*类型的指针(可以理解为一个句柄,实际为一个结构体),AU3的DLLCALL传入的类型为ptr
第二个参数是cont char*(字符串常量),DLLCALL可以直接用str作为参数的类型
第三个参数是第二个参数的空间大小,类型为ulong。因为mysql_real_query支持二进制据查询
与mysql_query不同的地方在于mysql指令不会被\0截断.因为它总是按照第三个参数提供的长度进行拷贝.
wsfda
发表于 2012-12-26 17:23:44
回复 28# ceoguang
感谢前辈,解释的很到位,明白了,感谢!!!
scorpio1102
发表于 2013-12-1 16:06:40
好好好一定要试下
fcurrk
发表于 2013-12-1 16:39:47
学习一下,平时MYSQL少,MS多