[已解决]--如何获取MYSQL检索出来的结果?
本帖最后由 kingfirekkk 于 2010-12-25 23:55 编辑最近在捣鼓些小东西,要用到MYSQL数据库,基础比较差,使用phpmyadmin能够找出对应的结果,但用Autoit就不知道要怎么搞了。
例如MYSQL源语句如下,问题是:这些查询的结果,怎么处理呢?能否举个例子...
#include <MYSQL.AU3>
Global $MysqlConn = _MySQL_Init()
Global $pass = "root"
Global $connected = _MySQL_Real_Connect($MysqlConn, $SERVER, "root", $pass)
If $connected = 0 Then
$errno = _MySQL_errno($MysqlConn)
MsgBox(0, "Error:", $errno & @LF & _MySQL_error($MysqlConn))
If $errno = $CR_UNKNOWN_HOST Then MsgBox(0, "Error:", "$CR_UNKNOWN_HOST" & @LF & $CR_UNKNOWN_HOST)
_MySQL_Close($MysqlConn)
_MySQL_EndLibrary()
;~ Exit
EndIf
_MySQL_Real_Query($MysqlConn,"SELECT COUNT(*) FROM 表名") ;统计所有数据笔数;
_MySQL_Real_Query($MysqlConn,"SELECT * FROM 表名 WHERE 日期字段 like today%;") ;统计今日目前已经测试数据笔数;
_MySQL_Real_Query($MysqlConn,"select * from test where to_days(Timedate) = to_days(now();");查询当天所有数据
_MySQL_Real_Query($MysqlConn,"select * from test where date(Timedate) = curdate();"); 查询当天所有数据:
_MySQL_Real_Query($MysqlConn,"select * from test where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(Timedate);");查询一周:
_MySQL_Real_Query($MysqlConn,"select * from test where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(Timedate);");;查询一个月:
_MySQL_Real_Query($MysqlConn,"select * from test order by `Timedate` desc limit 5;");最后5行
_MySQL_Real_Query($MysqlConn,"slect * from test order by `Timedate` asc limit 5;"); 最前5行
_MySQL_Real_Query($MysqlConn,"SELECT * FROM test ORDER BY `Timedate` DESC LIMIT 30;"); 最前30行
_MySQL_Real_Query($MysqlConn,"SELECT * FROM `test` WHERE `Timedate` LIKE '2010-12-24%';");统计固定日期数据
希望C版可以出手解答下... 先写入数组 ,然后再用 array[*][*]读 .再写到 listview或别的地方 .好像论坛中有 .晚上在电脑上给你例子 . 这是我刚开始调试代码,得到表的总数量,现在不用这个了。这个方法有点慢,你参考下。你会不会把大量数据一次性写入LISTVIEW,我只会一条一条的写。#include <array.au3>
#include "mysql.au3"
;呼叫 产生DLL 如果有DLL 就不产生 如果没有就产生
__MySQL_ExtractEmbeddedDLL()
; 呼叫 SQL 范例
_MySQL_InitLibrary(); 呼叫 DLL 档没有这行 程式会出现错误
$MysqlConn = _MySQL_Init();定义连接没有这行 程式会看不懂连接语法
; 资料栏位 与笔数 范例
;sgBox(0, "笔数-资料栏位范例", "笔数-资料栏位范例")
;_MySQL_Real_Connect 语法($MySQL_ptr, 主机名, 使用者, 密码, 资料库名称, $Port = 0, $unix_socket = "", $Client_Flag = 0)
$connected = _MySQL_Real_Connect($MysqlConn, "127.0.0.1", "root","123", "outside");, "3306")
If $connected = 0 Then Exit MsgBox(16, 'Connection Error', _MySQL_Error($MysqlConn));假设连接错误 显示错误讯息
$query = "SELECT COUNT(1) FROM pack";products";设定资料库查询语法
_MySQL_Real_Query($MysqlConn, $query) ;资料库查询语法 使用_MySQL_Real_Query :可能会有中文判断的问题
;__MySQL_Real_Query($MysqlConn,"UPDATE products SET products_model ='PC-DISC' Where products_model='ABC-123'")
;使用_MySQL_Query
;_MySQL_Query($MysqlConn,"UPDATE products SET products_model ='PC-DISC' Where products_model='蔡'")
$res = _MySQL_Store_Result($MysqlConn);记录查询回来的结果
$fields = _MySQL_Num_Fields($res);栏位 数量回报用法
$rows = _MySQL_Num_Rows($res);资料笔数 回报用法
MsgBox(0, "笔数-资料栏位","笔数:"&$rows & "-" & $fields&"栏位")
$array = _MySQL_Fetch_Result_StringArray($res) ;写入到数组
$data2=""
$data2 = $data2&$array[$rows][$fields-1] ;如果要显示每一行,在这一行上做文章
MsgBox(0, '', "行数 :"&$data2)
用时在研究吧 本帖最后由 ceoguang 于 2010-12-25 23:34 编辑
回复 2# kingfirekkk
4#的就是你要的代码了,结果通过_MySQL_Store_Result来获取.
最后别忘了用_MySQL_Free_Result来释放内存 唉,还是没有看全Mysql.au3啊,里面是有这个函数的...谢谢C版及nbmpe了。。。 好,有用,谢谢版主了
页:
[1]