diff --git a/README.md b/README.md new file mode 100644 index 0000000..baea5b1 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# FiveM MySQL - MySQL library for FiveM +[![N|CoreV](https://i.imgur.com/wA7DmUS.png)](https://github.com/ThymonA/fivem-mysql) +[![Issues](https://img.shields.io/github/issues/ThymonA/fivem-mysql.svg?style=for-the-badge)](https://github.com/ThymonA/fivem-mysql/issues) +[![License](https://img.shields.io/github/license/ThymonA/fivem-mysql.svg?style=for-the-badge)](https://github.com/ThymonA/fivem-mysql/blob/master/LICENSE) +[![Forks](https://img.shields.io/github/forks/ThymonA/fivem-mysql.svg?style=for-the-badge)](https://github.com/ThymonA/fivem-mysql) +[![Stars](https://img.shields.io/github/stars/ThymonA/fivem-mysql.svg?style=for-the-badge)](https://github.com/ThymonA/fivem-mysql) + +This mysql-async Library for FiveM intends to provide function to connect to a MySQL in a Sync and Async way. This resource is inspired by [`fivem-mysql-async`](https://github.com/brouznouf/fivem-mysql-async) and written by [ThymonA](https://github.com/ThymonA/) + +### **Example** +If you want to know how this resource works? check the [`example.lua`](https://github.com/ThymonA/fivem-mysql/blob/master/example.lua) file inside this resource. + +### **Config the `server.cfg`** +**Config** | **Description** | **Default** +:----------|:----------------|:---------------- +`mysql_connection_string` | MySQL connection string, there are two variants possible: Check **`Connections strings`** under this table. | `mysql://root@localhost/fivem` +`mysql_level` | Warn level used to print message in console, there are couble of options like: `info`, `debug`, `warn`, `error` or `fatal` | `warn` +`mysql_slow_query_warning` | When an query takes longer than the defined number, print an query warn message in console to let the server know that the executed query is slow | `500` (ms) + +#### **Connections strings:** +**Variants:** +* `mysql://root:pass1234@localhost/fivem` +* `server=localhost;userid=root;password=pass1234;database=fivem` + +### **Issues** +Make sure you provide all information possible when reporting an issue. + +### **Changelog** +For a detailed changelog either check the commits or read [`https://github.com/ThymonA/fivem-mysql/releases`](https://github.com/ThymonA/fivem-mysql/releases) + +### **Features** + +* Async / Sync. +* It uses the [node-mysql2](https://github.com/sidorares/node-mysql2) library to provide a connection to your mysql server and is faster than the [mysql](https://github.com/mysqljs/mysql) library. \ No newline at end of file diff --git a/example.lua b/example.lua new file mode 100644 index 0000000..4850526 --- /dev/null +++ b/example.lua @@ -0,0 +1,48 @@ +-- 𝗙𝗶𝘃𝗲𝗠 𝗠𝘆𝗦𝗤𝗟 - 𝗠𝘆𝗦𝗤𝗟 𝗹𝗶𝗯𝗿𝗮𝗿𝘆 𝗳𝗼𝗿 𝗙𝗶𝘃𝗲𝗠 +-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +-- ➤ License: https://choosealicense.com/licenses/gpl-3.0/ +-- ➤ GitHub: https://github.com/ThymonA/fivem-mysql/ +-- ➤ Author: Thymon Arens +-- ➤ Name: FiveM MySQL +-- ➤ Version: 1.0.0 +-- ➤ Description: MySQL library made for FiveM +-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ +-- 𝗚𝗡𝗨 𝗚𝗲𝗻𝗲𝗿𝗮𝗹 𝗣𝘂𝗯𝗹𝗶𝗰 𝗟𝗶𝗰𝗲𝗻𝘀𝗲 𝘃𝟯.𝟬 +-- ┳ +-- ┃ Copyright (C) 2020 Thymon Arens +-- ┃ +-- ┃ This program is free software: you can redistribute it and/or modify +-- ┃ it under the terms of the GNU General Public License as published by +-- ┃ the Free Software Foundation, either version 3 of the License, or +-- ┃ (at your option) any later version. +-- ┃ +-- ┃ This program is distributed in the hope that it will be useful, +-- ┃ but WITHOUT ANY WARRANTY; without even the implied warranty of +-- ┃ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- ┃ GNU General Public License for more details. +-- ┃ +-- ┃ You should have received a copy of the GNU General Public License +-- ┃ along with this program. If not, see . +-- ┻ + +mysql:ready(function() + print(mysql:fetchScalar('SELECT @parameter', { + ['parameter'] = 1 + })) + + print(mysql:fetchScalar('SELECT :parameter', { + ['parameter'] = 1 + })) + + mysql:fetchAllAsync('SELECT * FROM `users` LIMIT 10', {}, function(results) + print(json.encode(results)) + end) + + print(json.encode(mysql:fetchAll('SELECT * FROM `users` LIMIT 10', {}))) + + mysql:fetchFirstAsync('SELECT * FROM `users` LIMIT 1', {}, function(results) + print(json.encode(results)) + end) + + print(json.encode(mysql:fetchFirst('SELECT * FROM `users` LIMIT 1', {}))) +end) \ No newline at end of file