|
;_MySQL_Num_Rows
Func _MySQL_Num_Rows($result)
Local $rows = DllCall("libmysql.dll", "uint64", "mysql_num_rows", "ptr", $result)
If @error Then Return SetError(1, 0, 0)
Return __MySQL_ReOrderULONGLONG($rows[0])
EndFunc ;==>_MySQL_Num_Rows
;__MySQL_ReOrderULONGLONG($rows[0])
Func __MySQL_ReOrderULONGLONG($UINT64)
Local $int = DllStructCreate("uint64")
Local $longlong = DllStructCreate("ulong;ulong", DllStructGetPtr($int))
DllStructSetData($int, 1, $UINT64)
Return 4294967296 * DllStructGetData($longlong, 1) + DllStructGetData($longlong, 2)
EndFunc ;==>__MySQL_ReOrderULONGLONG
问题出在:
Return 4294967296 * DllStructGetData($longlong, 1) + DllStructGetData($longlong, 2)
导致查询结果的二维数组无法构造。
原作者不会那么粗心吧,
会不会论坛一些不愿意共享的又想刷分的人。 |
|