Hallo Community,
da ja doch in letzter Zeit einige Leute wissen wollten wie man Mysql in Verbindung mit LUA benutzt habe ich für Anfänger ein kleines Tut zusammengeschrieben. Ich benutze bewusst die MTA Datenbankfunktionen und nicht das Mysql Modul. Also Viel Spaß beim Durchlesen und lernen
dbConnect()
Lua
local dbtype = "mysql" könnte auch sqlite sein
handler = dbConnect( dbtype, "dbname=deineDatenbank;host=ipAdresse", "benutzer", "passwort", [variabel optionen])
Wichtige Optionen:
autoreconnect: "autoreconnect=1", eine gedroppte Verbindung wird automatisch wiederhergestellt, bei 0 passiert nichts. Autoreconnect=1 ist standarmäßig
log: "log=1", es werden logs in der Datenbank Log File gespeichert. Auch hier gilt ist automatisch auf 1 gestellt
"tag: tag=script" damit werden für das Script Logs in der Datenbank Log File gespeichert
dbExec()
Lua
dbExec(dbConnection in unserem Fall handler, query)
für den query bei dbExec gilt, es können nur "Updates" oder "Inserts" verwendet werden. dbExec gibt keinerlei Wert zurück, außer ob der Query erfolgreich war.
Für Werte sollte man am besten ? verwenden. Beispiel:
Bsp: dbExec(handler,"UPDATE userdata SET `user_id` = ? WHERE `player` = ?
dbQuery()
Lua
local query = dbQuery(handler, query)
Für dbQuery gilt, es wird ein Wert zurückgegeben welcher nur mittels dbPoll herausgelesen werden kann. Man könnte also z. B. "SELECT * FROM table" oder "UPDATE userdata SET name = name" verwenden.
Bsp: local query = dbQuery(handler, "SELECT * FROM userdata WHERE name = ?", name) nun müssen wir den Wert herausbekommen. Dazu verwenden wir dbPoll
dbPoll()
Lua
dbPoll wird zum Herauslesen von dbQuery() verwendet. dbPoll gibt 3 Werte zurück. Result, Rows und Error.
Bsp: local result, row, errormessage = dbPoll
if row > 0 then
for result, row in pairs(result) do
local test = row["deinspaltenname"]
end(query)
dbFree()
Als kleiner Tipp noch. Man kann bei den MTA Datenbank Funktionen anstellen von Werten ? setzen und diese dann nach einem Beistrich setzen.
Bsp:
Ich hoffe das ich euch damit einen kleinen Einblick und erleichterten Einstieg in den Bereich von LUA in Verbindung mit Mysql geben konnte.
mfg Jake
mfg