psychopyro212 Posted January 20, 2014 Share Posted January 20, 2014 I'm playing with Progandy's MYSQL udf and I'm having issues writing to the database. Example Code: #include <array.au3> #include "mysql.au3" $SQLAddress = "127.0.0.1" $SQLUserName = "root" $SQLPassword = "" $SQLDatabase = "Testing" _MySQL_InitLibrary() $MysqlConn = _MySQL_Init() _MySQL_Real_Connect($MysqlConn,$SQLAddress,$SQLUserName,$SQLPassword,$SQLDatabase) If @error Then MsgBox("", "", "Error Connecting") Else ;MsgBox("","","Success") EndIf ;$query = "CREATE TABLE ErrorLog(ErrorNO Int Auto_Increment, Time TIMESTAMP,Error VARCHAR(100) NOT NULL,Sevarity Int(1) NOT NULL, Primary Key(ErrorNO))" $query = "INSERT INTO errorlog(Error,Sevarity) VALUES ('Test Error',0)" $result = _MySQL_Query($MysqlConn, $query) ConsoleWrite($result & @CRLF) _MySQL_Close($MysqlConn) _MySQL_EndLibrary() I'm attempting to use the MYSQL command: "INSERT INTO errorlog(Error,Sevarity) VALUES ('Test Error',0)" Reading through the udf a return from the _Mysql_Query function of 0 (which is what im getting) means success. I then go to check the table in MYSQL workbench and it never wrote to the table. I ran the same command in workbench and it wrote to the table any ideas? Link to comment Share on other sites More sharing options...
psychopyro212 Posted January 20, 2014 Author Share Posted January 20, 2014 Just to clarify this a little the code commented out to create a table worked just fine so it is interfacing with mysql to some extent. Link to comment Share on other sites More sharing options...
michaelslamet Posted January 20, 2014 Share Posted January 20, 2014 Hi, Please add an error handler to know exactly the error message. Put this on the top of the script: $objErr = ObjEvent("AutoIt.Error","MyErrFunc") And this anywhere on the script: Func MyErrFunc() $hexnum=hex($objErr.number,8) Msgbox(0,"","We intercepted a COM Error!!" & @CRLF & @CRLF & _ "err.description is: " & $objErr.description & @CRLF & _ "err.windescription is: " & $objErr.windescription & @CRLF & _ "err.lastdllerror is: " & $objErr.lastdllerror & @CRLF & _ "err.scriptline is: " & $objErr.scriptline & @CRLF & _ "err.number is: " & $hexnum & @CRLF & _ "err.source is: " & $objErr.source & @CRLF & _ "err.helpfile is: " & $objErr.helpfile & @CRLF & _ "err.helpcontext is: " & $objErr.helpcontext _ ) exit EndFunc And make sure the credential you used for login has a INSERT privillege Link to comment Share on other sites More sharing options...
psychopyro212 Posted January 23, 2014 Author Share Posted January 23, 2014 (edited) Here is my script with your included code: expandcollapse popup#include <array.au3> #include "mysql.au3" $objErr = ObjEvent("AutoIt.Error","MyErrFunc") $SQLAddress = "127.0.0.1" $SQLUserName = "root" $SQLPassword = "" $SQLDatabase = "Testing" _MySQL_InitLibrary() $MysqlConn = _MySQL_Init() _MySQL_Real_Connect($MysqlConn,$SQLAddress,$SQLUserName,$SQLPassword,$SQLDatabase) If @error Then MsgBox("", "", "Error Connecting") $query = "CREATE TABLE ErrorLog(ErrorNO Int Auto_Increment, Time TIMESTAMP,Error VARCHAR(100) NOT NULL,Sevarity Int(1) NOT NULL, Primary Key(ErrorNO))" ;$query = "INSERT INTO errorlog(Error,Sevarity) VALUES ('Test Error',0)" $result = _MySQL_Real_Query($MysqlConn, $query) ConsoleWrite("Return code = " & $result & @crlf & @MON & "/" & @MDAY & "/" & @YEAR & "-" & @hour & ":" & @MIN & ":" & @sec &@CRLF) _MySQL_Close($MysqlConn) _MySQL_EndLibrary() Func MyErrFunc() $hexnum=hex($objErr.number,8) Msgbox(0,"","We intercepted a COM Error!!" & @CRLF & @CRLF & _ "err.description is: " & $objErr.description & @CRLF & _ "err.windescription is: " & $objErr.windescription & @CRLF & _ "err.lastdllerror is: " & $objErr.lastdllerror & @CRLF & _ "err.scriptline is: " & $objErr.scriptline & @CRLF & _ "err.number is: " & $hexnum & @CRLF & _ "err.source is: " & $objErr.source & @CRLF & _ "err.helpfile is: " & $objErr.helpfile & @CRLF & _ "err.helpcontext is: " & $objErr.helpcontext _ ) exit EndFunc Here is the _MySQL_Real_Query function Func _MySQL_Real_Query($MySQL_ptr, $querystring, $querystringlength = Default) If Not $MySQL_ptr Then Return SetError(3, 0, $CR_NULL_POINTER) If $querystringlength <= 0 Or $querystringlength = Default Then $querystringlength = StringLen($querystring) Local $query = DllCall($ghMYSQL_LIBMYSQL, "int", "mysql_real_query", "ptr", $MySQL_ptr, "str", $querystring, "ulong", $querystringlength) If @error Then Return SetError(1, 0, 1) Return $query[0] EndFunc ;==>_MySQL_Real_Query Getting this output from the script: Return code = 0 01/22/2014-21:03:40 Here is the timestamp from the last entry into the database: '25', '2014-01-19 20:37:23', 'Test Error', '0' I can run this command in mysql workbench with no issues: INSERT INTO errorlog(Error,Sevarity) VALUES ('Test Error',0) This is functioning properly in my script and having no issues generating the table in mysql: $query = "CREATE TABLE ErrorLog(ErrorNO Int Auto_Increment, Time TIMESTAMP,Error VARCHAR(100) NOT NULL,Sevarity Int(1) NOT NULL, Primary Key(ErrorNO))" michaelslamet Universalist Active Members 848 posts Posted 20 January 2014 - 12:08 AM Hi, Please add an error handler to know exactly the error message. Put this on the top of the script: $objErr = ObjEvent("AutoIt.Error","MyErrFunc") And this anywhere on the script: Func MyErrFunc()$hexnum=hex($objErr.number,8)Msgbox(0,"","We intercepted a COM Error!!" & @CRLF & @CRLF & _ "err.description is: " & $objErr.description & @CRLF & _ "err.windescription is: " & $objErr.windescription & @CRLF & _ "err.lastdllerror is: " & $objErr.lastdllerror & @CRLF & _ "err.scriptline is: " & $objErr.scriptline & @CRLF & _ "err.number is: " & $hexnum & @CRLF & _ "err.source is: " & $objErr.source & @CRLF & _ "err.helpfile is: " & $objErr.helpfile & @CRLF & _ "err.helpcontext is: " & $objErr.helpcontext _ )exitEndFunc And make sure the credential you used for login has a INSERT privillege As I showed in the script I revised I tried this and got no errors. Root has all privileges. Thank you for your prompt reply! Edited January 23, 2014 by psychopyro212 Link to comment Share on other sites More sharing options...
psychopyro212 Posted January 23, 2014 Author Share Posted January 23, 2014 Just to test this a little further I ran this in MySQL and used its credentials, Same results. CREATE USER 'TESTACC'@'%' IDENTIFIED BY 'TESTPASS'; GRANT ALL PRIVILEGES ON *.* TO 'TESTACC'@'%'; CREATE USER 'TESTACC'@'localhost' IDENTIFIED BY 'TESTPASS'; GRANT ALL PRIVILEGES ON *.* TO 'TESTACC'@'localhost'; Link to comment Share on other sites More sharing options...
psychopyro212 Posted January 24, 2014 Author Share Posted January 24, 2014 Bump Link to comment Share on other sites More sharing options...
bogQ Posted January 24, 2014 Share Posted January 24, 2014 (edited) dont have mysql.au3 but i used your query code with EzMySql, creater and wroted to DB form your query code with no problems. pls try with >EzMySql, if problem is still there then something is wrong with your db settings or something third and pls check one more time does your root have all privilegies #include "EzMySql.au3" #include <Array.au3> If Not _EzMySql_Startup() Then MsgBox(0, "Error Starting MySql", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) Exit EndIf $Pass = "" If Not _EzMySql_Open("", "root", $Pass, "", "3306") Then MsgBox(0, "Error opening Database", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) Exit EndIf ;~ If Not _EzMySql_Exec("CREATE DATABASE IF NOT EXISTS Testing") Then ;~ MsgBox(0, "Error opening Database", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) ;~ Exit ;~ EndIf If Not _EzMySql_SelectDB("Testing") Then;change db name if needed MsgBox(0, "Error setting Database to use", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) Exit EndIf ;~ If Not _EzMYSql_Query("CREATE TABLE ErrorLog(ErrorNO Int Auto_Increment, Time TIMESTAMP,Error VARCHAR(100) NOT NULL,Sevarity Int(1) NOT NULL, Primary Key(ErrorNO));") Then ;~ MsgBox(0, "Query Error", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) ;~ Exit ;~ EndIf If Not _EzMYSql_Query("INSERT INTO ErrorLog(Error,Sevarity) VALUES ('TextXName',0);") Then MsgBox(0, "Query Error", "Error: " & @error & @CR & "Error string: " & _EzMySql_ErrMsg()) Exit EndIf Edited January 24, 2014 by bogQ TCP server and client - Learning about TCP servers and clients connectionAu3 oIrrlicht - Irrlicht projectAu3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related) There are those that believe that the perfect heist lies in the preparation.Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost. Link to comment Share on other sites More sharing options...
Maxpilot Posted January 27, 2014 Share Posted January 27, 2014 (edited) Do someone please have a good link to the "mysql.au3" by ProgAndi? Can't find it anywhere (not the one from cdkid). Edited January 27, 2014 by Maxpilot Link to comment Share on other sites More sharing options...
bogQ Posted January 27, 2014 Share Posted January 27, 2014 At the moment looks like his link dont work and information when he was last time online is unknownHis last public post was 22 October 2012 - 08:34 PMso maybe psychopyro212 can upload it for you if he still have it. TCP server and client - Learning about TCP servers and clients connectionAu3 oIrrlicht - Irrlicht projectAu3impact - Another 3D DLL game engine for autoit. (3impact 3Drad related) There are those that believe that the perfect heist lies in the preparation.Some say that it’s all in the timing, seizing the right opportunity. Others even say it’s the ability to leave no trace behind, be a ghost. Link to comment Share on other sites More sharing options...
Maxpilot Posted January 28, 2014 Share Posted January 28, 2014 (edited) Today all links work fine! Thanks to ProgAndy, great UDFs and Inspiration sources. Edited January 28, 2014 by Maxpilot Link to comment Share on other sites More sharing options...
Daymond Posted June 24, 2019 Share Posted June 24, 2019 On 1/28/2014 at 2:35 AM, Maxpilot said: Today all links work fine! Thanks to ProgAndy, great UDFs and Inspiration sources. Maxpilot, did you happen to find a link for the entire zip file for the MySQL.au3? I have that file actually, but I can't locate the libMySQLDLL.au3. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now