Files
GTA4RP/scripts/server/database.js
2021-01-01 16:18:59 -06:00

113 lines
3.5 KiB
JavaScript

// ===========================================================================
// Asshat-Gaming Roleplay
// https://github.com/VortrexFTW/gtac_asshat_rp
// Copyright (c) 2020 Asshat-Gaming (https://asshatgaming.com)
// ---------------------------------------------------------------------------
// FILE: database.js
// DESC: Provides database handling, functions and usage
// TYPE: Server (JavaScript)
// ===========================================================================
// ----------------------------------------------------------------------------
let databaseConfig = {
host: "127.0.0.1",
user: "gtac-main",
pass: "QaH2rOP7BOBAkuX5V74EsOFi4uh5XO",
name: "gtac_main",
port: 3306,
usePersistentConnection: true,
}
let persistentDatabaseConnection = null;
// ----------------------------------------------------------------------------
function initDatabaseScript() {
console.log("[Asshat.Database]: Initializing database script ...");
console.log("[Asshat.Database]: Database script initialized successfully!");
}
// ----------------------------------------------------------------------------
function connectToDatabase() {
if(persistentDatabaseConnection == null) {
console.log("[Asshat.Database] Initializing database connection ...");
persistentDatabaseConnection = module.mysql.connect(databaseConfig.host, databaseConfig.user, databaseConfig.pass, databaseConfig.name, databaseConfig.port);
if(persistentDatabaseConnection.error) {
console.warn("[Asshat.Database] Database connection error: " + toString(persistentDatabaseConnection.error));
persistentDatabaseConnection = null;
return false;
}
console.log("[Asshat.Database] Database connection successful!");
return persistentDatabaseConnection;
} else {
//console.log("[Asshat.Database] Using existing database connection.");
return persistentDatabaseConnection;
}
}
// ----------------------------------------------------------------------------
function disconnectFromDatabase(dbConnection) {
if(!databaseConfig.usePersistentConnection) {
dbConnection.close();
}
return true;
}
// ----------------------------------------------------------------------------
function queryDatabase(dbConnection, queryString) {
return dbConnection.query(queryString);
}
// ----------------------------------------------------------------------------
function escapeDatabaseString(dbConnection, unsafeString) {
if(!dbConnection) {
dbConnection = connectToDatabase();
}
return dbConnection.escapeString(unsafeString);
}
// ----------------------------------------------------------------------------
function getDatabaseInsertId(dbConnection) {
return dbConnection.insertId;
}
// ----------------------------------------------------------------------------
function getDatabaseError(dbConnection) {
return dbConnection.error;
}
// ----------------------------------------------------------------------------
function freeDatabaseQuery(dbQuery) {
dbQuery.free();
return;
}
// ----------------------------------------------------------------------------
function fetchQueryAssoc(dbQuery) {
return dbQuery.fetchAssoc();
}
// ----------------------------------------------------------------------------
function quickDatabaseQuery(queryString) {
let dbConnection = connectToDatabase();
if(dbConnection) {
let dbQuery = queryDatabase(dbConnection, queryString);
if(dbQuery) {
freeDatabaseQuery(dbQuery);
}
disconnectFromDatabase(dbConnection);
}
}
// ----------------------------------------------------------------------------