tw.database
Cote : Server
Gestion de tables et colonnes MySQL via oxmysql. Le module charge oxmysql automatiquement — n'incluez pas @oxmysql/lib/MySQL.lua dans votre fxmanifest et ne declarez pas oxmysql comme dependance.
Fonctions
tw.database.table_exists(table_name)
Verifie si une table existe dans la base de donnees.
| Parametre | Type | Description |
|---|---|---|
table_name | string | Nom de la table a verifier |
Retour : boolean
Alias : tw.database.doesTableExist(table_name)
tw.database.ensure_table(table_name, definition)
Cree une table si elle n'existe pas deja.
| Parametre | Type | Description |
|---|---|---|
table_name | string | Nom de la table |
definition | string | Definitions des colonnes SQL (tout ce qui se trouve entre les parentheses de CREATE TABLE) |
Retour : boolean — true si la table a ete creee ou existait deja.
Alias : tw.database.addTable(table_name, definition)
tw.database.ensure_column(table_name, column_name, definition)
Ajoute une colonne a une table existante si elle n'existe pas deja.
| Parametre | Type | Description |
|---|---|---|
table_name | string | Nom de la table |
column_name | string | Nom de la colonne a ajouter |
definition | string | Definition SQL de la colonne (ex: 'VARCHAR(255) NOT NULL DEFAULT ""') |
Retour : boolean
Alias : tw.database.addColumn(table_name, column_name, definition)
tw.database.ensure_trigger(trigger_name, definition)
Cree un trigger s'il n'existe pas deja.
| Parametre | Type | Description |
|---|---|---|
trigger_name | string | Nom du trigger |
definition | string | Definition SQL complete du trigger |
Retour : boolean
Alias : tw.database.addTrigger(trigger_name, definition)
Exemples
Configuration de table et colonne au demarrage
tw.require("database")
tw.ready(function()
-- Creer la table
tw.database.ensure_table('twinded_collect', [[
`id` INT NOT NULL AUTO_INCREMENT,
`charidentifier` INT NOT NULL,
`item` VARCHAR(100) NOT NULL,
`amount` INT NOT NULL DEFAULT 0,
`last_collect` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
]])
-- Ajouter une colonne a une table existante (sans risque si deja presente)
tw.database.ensure_column('twinded_collect', 'zone', 'VARCHAR(50) DEFAULT NULL')
end)Requetes SQL directes
Apres le chargement de tw.database, vous avez acces aux fonctions standard d'oxmysql :
-- Selectionner plusieurs lignes
local rows = MySQL.query.await('SELECT * FROM twinded_collect WHERE charidentifier = ?', { charId })
-- Selectionner une seule ligne
local row = MySQL.single.await('SELECT * FROM twinded_collect WHERE id = ?', { id })
-- Mise a jour
MySQL.update.await('UPDATE twinded_collect SET amount = ? WHERE id = ?', { newAmount, id })
-- Insertion
MySQL.insert.await('INSERT INTO twinded_collect (charidentifier, item, amount) VALUES (?, ?, ?)', { charId, "apple", 5 })Notes
- Appelez toujours
tw.require("database")avant d'utiliser ce module. - N'ajoutez pas
@oxmysql/lib/MySQL.luaa votre fxmanifest —tw.databases'en charge. - Ne declarez pas
oxmysqldans les dependances de votre script —twinded_libsle gere. - Utilisez
ensure_tableetensure_columndanstw.ready()pour que la base de donnees soit configuree avant toute requete.

