MySQL UDFs using libmysql.dll functions: most functions from MySQL API all are prefixed with an underscore: _MySql... e.g.: _MySQL_Real_Query( sometimes parameters are chaged - read function descriptions in include file MySQL.au3 If you do not need the power of these UDFs and you simple want to use basic SQL commands, then have a look at not included: MySQL_Connect - This function is deprecated. Use _MySQL_Real_Connect instead.
MySQL_Create_DB - This function is deprecated. Use mysql_query() to issue an SQL CREATE DATABASE statement instead.
MySQL_Drop_DB - This function is deprecated. Use mysql_query() to issue an SQL DROP DATABASE statement instead.
MySQL_Escape_String - You should use _mysql_real_escape_string() instead!
MySQL_Kill - This function is deprecated. Use mysql_real_query() to issue an SQL KILL statement instead
mysql_library_end - Called by _MySQL_EndLibrary.
mysql_library_init - Called by _MySQL_InitLibrary. I included a fallback-libmysql.dll: yoou can include libMySQLDLL.au3 and set $Use_EmbeddedDLL=True when calling _MySQL_InitLibrary an example for XAMPP / cdcol is also included in ZIP. #cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.8.1 (beta)
Author: Prog@ndy
Script Function:
MySQL-Plugin Demo Script
#ce ----------------------------------------------------------------------------
#include <array.au3>
#include "mysql.au3"
; MYSQL starten, DLL im PATH (enthält auch @ScriptDir), sont Pfad zur DLL angeben. DLL muss libmysql.dll heißen.
_MySQL_InitLibrary()
If @error Then Exit MsgBox(0, '', "could nit init MySQL")
MsgBox(0, "DLL Version:",_MySQL_Get_Client_Version()&@CRLF& _MySQL_Get_Client_Info())
$MysqlConn = _MySQL_Init()
;Fehler Demo:
MsgBox(0,"Error-demo","Error-Demo")
$connected = _MySQL_Real_Connect($MysqlConn,"localhostdfdf","droot","","cdcol")
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)
Endif
; XAMPP cdcol
MsgBox(0, "XAMPP-Cdcol-demo", "XAMPP-Cdcol-demo")
$connected = _MySQL_Real_Connect($MysqlConn, "localhost", "root", "", "cdcol")
If $connected = 0 Then Exit MsgBox(16, 'Connection Error', _MySQL_Error($MysqlConn))
$query = "SELECT * FROM cds"
$mysql_bool = _MySQL_Real_Query($MysqlConn, $query)
If $mysql_bool = $MYSQL_SUCCESS Then
MsgBox(0, '', "Query OK")
Else
$errno = _MySQL_errno($MysqlConn)
MsgBox(0,"Error:",$errno & @LF & _MySQL_error($MysqlConn))
EndIf
$res = _MySQL_Store_Result($MysqlConn)
$fields = _MySQL_Num_Fields($res)
$rows = _MySQL_Num_Rows($res)
MsgBox(0, "", $rows & "-" & $fields)
; Access2 1
MsgBox(0, '', "Access method 1- manual")
Dim $array[$rows][$fields]
For $k = 1 To $rows
$mysqlrow = _MySQL_Fetch_Row($res,$fields)
$lenthsStruct = _MySQL_Fetch_Lengths($res)
For $i = 1 To $fields
$length = DllStructGetData($lenthsStruct, 1, $i)
$fieldPtr = DllStructGetData($mysqlrow, 1, $i)
$data = DllStructGetData(DllStructCreate("char[" & $length & "]", $fieldPtr), 1)
$array[$k - 1][$i - 1] = $data
Next
Next
_ArrayDisplay($array)
; Access 2
MsgBox(0, '', "Access method 2 - row for row")
_MySQL_Data_Seek($res, 0) ; just reset the pointer to the beginning of the result set
Do
$row1 = _MySQL_Fetch_Row_StringArray($res)
If @error Then ExitLoop
_ArrayDisplay($row1)
Until @error
; Access 3
MsgBox(0, '', "Access method 3 - read whole result in 2D-Array")
$array = _MySQL_Fetch_Result_StringArray($res)
_ArrayDisplay($array)
; fieldinfomation
MsgBox(0, '', "Access fieldinformation")
Dim $arFields[$fields][3]
For $i = 0 To $fields - 1
$field = _MySQL_Fetch_Field_Direct($res, $i)
$arFields[$i][0] = _MySQL_Field_ReadValue($field, "name")
$arFields[$i][1] = _MySQL_Field_ReadValue($field, "table")
$arFields[$i][2] = _MySQL_Field_ReadValue($field, "db")
Next
_ArrayDisplay($arFields)
; free result
_MySQL_Free_Result($res)
; Close connection
_MySQL_Close($MysqlConn)
; exit MYSQL
_MySQL_EndLibrary() MySQL UDf Downloads: (including x86 and x64)</array.au3>