Войти

Показать полную графическую версию : [решено] Взаимодействие с MySQL


morgan1991
23-01-2009, 21:40
Скажите пожалуйста может ли автоит работатьс БД MySQL?
Если да то как, или дайте ссылку где почитать....
Только пожалуйста на русском языке....
Лучше для Автоит версии 3.2.8.1 если никак тогда 3.2.12.1
Заранее спасибо.

Creat0R
23-01-2009, 22:02
может ли автоит работатьс БД MySQL? »
Только пожалуйста на русском языке »
На русском найти не удалось, есть на англ.:

SQLite semi Embedded database functionality in AutoIt (http://www.autoitscript.com/forum/index.php?showtopic=17099)
MySQL UDFs (http://www.autoitscript.com/forum/index.php?showtopic=20814) 1
MySQL UDFs (http://www.autoitscript.com/forum/index.php?showtopic=85617) 2

Последний самый новый.

morgan1991
23-01-2009, 23:53
Ничего не понял...
Может скажете просто как приконектиться потом создать таблицу с двумя столбцами, вписать в третью строку первого столбца значение, потом удалить второй столбец, считать значение с третьей строки первого столбца и удалить всю таблицу?
Мне для обучения

Creat0R
24-01-2009, 01:44
как приконектиться потом создать таблицу с двумя столбцами »
Я с этой библиотекой особо не работал, поэтому помочь возможности нет :( Но уверен что ответ можно найти почитав внимательно примеры и доки от функции.

morgan1991
31-03-2009, 23:43
Но уверен что ответ можно найти почитав внимательно примеры и доки »
Прочитал я всё но там ни одного примера коннекта. Там только открытие файла БД я о таком даже не слышал. Мне нужно всего лишь чсчитать данные с определённой ячейки. Может кто с БД работал? помогите...

Creat0R
31-03-2009, 23:54
там ни одного примера коннекта »
А тут (http://www.autoitscript.com/forum/index.php?showtopic=85617), не то?

morgan1991
01-04-2009, 00:24
А тут, не то? »
Чтобы скрипт работал нужно скачатьь пачку библиотек. В которых есть файлик libmysql.dll
Скажите пожалуйста как его зарегестрировать в системе? (win XP)

proxy
01-04-2009, 00:56
Скажите пожалуйста как его зарегестрировать в системе? (win XP) »
а точно ли её надо регистрировать? недостаточно положить рядом с исполняемым файлом скрипта?

что бы разегистрировать используйте: _MySQL_InitLibrary()

Покапайтесь в файле test.au3, кторый в архиве с UDF MySql с ссылки "MySQL UDFs 2".
Там все есть, думаю нет смысла копировать от туда и вставлять сюда ))

И уже если не получится закидывайте сюда код вашего скрипта ..

morgan1991
01-04-2009, 01:15
В том то и дело что я положил все файлы с архива включая dll в папку include дак вот скрипт не конектится к базе:

#include <array.au3>
#include "mysql.au3"

_MySQL_InitLibrary()
If @error Then Exit MsgBox(0, '', "")
$MysqlConn = _MySQL_Init()

$connected = _MySQL_Real_Connect($MysqlConn, "ХОСТ","ПОЛЬЗОВАТЕЛЬ","ПАРОЛЬ","БД")
If $connected = 0 Then Exit MsgBox(16, 'Connection Error', _MySQL_Error($MysqlConn))

$query = "SELECT * FROM users WHERE yam=`" & _MySQL_RealEsacepString($yam) & "` AND password=`" & _MySQL_RealEsacepString($pass) & "`"
_MySQL_Real_Query($MysqlConn, $query)

;------------------------------------------------------


;------------------------------------------------------

$res = _MySQL_Store_Result($MysqlConn)
$fields = _MySQL_Num_Fields($res)

; Abfrage freigeben
_MySQL_Free_Result($res)

; Verbindung beenden
_MySQL_Close($MysqlConn)
; MYSQL beenden
_MySQL_EndLibrary()

Выдаёт вот это:

MsgBox(0, '', "")

proxy
01-04-2009, 01:23
В том то и дело что я положил все файлы с архива включая dll в папку include дак вот скрипт не конектится к базе: »
помойму, libmysql.dll, должна находится в папке где находится скрипт...

morgan1991
01-04-2009, 01:28
в папке где находится скрипт... »
Положил, теперь он долго думает и в конце вылетает ошибка:

Can't connect to MySQL server on 'тут хост' (10060)

proxy
01-04-2009, 01:36
Can't connect to MySQL server on 'тут хост' (10060)
адрес хоста же не=тут хост
а что нить к минимум=localhost
?

morgan1991
01-04-2009, 01:44
адрес хоста же не=тут хост »
не дак адрес нормальный указан и юзер и пароль и бд это я просто для форума так написал.

proxy
01-04-2009, 01:49
Can't connect to MySQL server on 'тут хост' (10060) »
1. тогда все ок - ошибка подключения.
есть возможность проверить другими средствами? к примеру обычный php сценайри коннектиться нормально этот адрес?

2. попробуйте использовать другую UDF по sql...

morgan1991
01-04-2009, 15:31
к примеру обычный php сценайри коннектиться нормально этот адрес? »
Да нормально.
попробуйте использовать другую UDF по sql.. »
попробую поискать.

D_Master
02-04-2009, 04:27
В какой-то из библиотек (качал давно, уже не помню) перед работой скриптов надо было установить драйвер ODBC MySQL.

proxy
02-04-2009, 16:41
В какой-то из библиотек (качал давно, уже не помню) перед работой скриптов надо было установить драйвер ODBC MySQL. »
это в UDF по ссылке: MySQL UDFs 1
по ссылке MySQL UDFs 2 работает без этого драйвера

morgan1991
12-06-2009, 14:15
Урааа! Я приконнектился к бд через
MySQL UDFs 2 »
Вот кодик:
#include "array.au3"
#include "mysql.au3"
_MySQL_InitLibrary()
$MysqlConn = _MySQL_Init()
$connected = _MySQL_Real_Connect($MysqlConn, "127.0.0.1", "root","123", "main")
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
$query = "SELECT * FROM test"
_MySQL_Real_Query($MysqlConn, $query)

$res = _MySQL_Store_Result($MysqlConn)
$gg = _MySQL_Fetch_Result_StringArray($res)
_ArrayDisplay($gg)

_MySQL_Free_Result($res)
_MySQL_Close($MysqlConn)
_MySQL_EndLibrary()
Но я так и не понял как добавлять новые данные в бд, как удалять и т.д. пробовал через _MySQL_Real_Query послать обычный запрос в бд, но ничего не вышло, помогите плиз, как это сделать?

Space-06
21-06-2009, 09:36
Ребята - прошу вашего совета и просьбы в помощи...
Соглашусь с morgan1991, выполнить запросы любые запросы - кроме как "select * from ... " - не получается вообще ... ( вываливается autoit.exe с ошибкой) ...

Что можно подсмотреть и поправить,
пытаюсь выполнить запрос insert или select * from ... where ....
тоже самое ....

подскажите где и как и что копать ...

morgan1991
22-06-2009, 19:29
Space-06,


вот у меня получилось:


#include "mysql.au3"
_MySQL_InitLibrary()
$MysqlConn = _MySQL_Init()
$connected = _MySQL_Real_Connect($MysqlConn,"домен","юзер","пароль", "бд")
If $connected = 0 Then
MsgBox(16, "Ошибка", "Нет соеденения с БД")
Exit
Else
_MySQL_Real_Query($MysqlConn, "SELECT * FROM test")
$res = _MySQL_Store_Result($MysqlConn)
_MySQL_Real_Query($MysqlConn, "DELETE FROM `test` WHERE (`name`='ххх') AND (`description`='ххх') LIMIT 1")




© OSzone.net 2001-2012