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