NUOVO 📢 Offerta di lancio limitata: fino al 70% di sconto sul tuo primo mese, per tutti i giochi!Vedi i piani

Come usare un database con il tuo bot Discord

Hosting di bot DiscordUpdated Oct 22, 20263 min read

Un bot che ricorda delle cose, come livelli, avvisi o impostazioni per server, ha bisogno di un posto dove tenerle. Il tuo piano bot include un database. Puoi usare anche un file come SQLite, che non richiede configurazione ma è più difficile da condividere tra due bot.

Crea il database

  1. Apri il tuo server nel pannello e clicca su Database nel menu a sinistra.
  2. Clicca su Nuovo database, scegli il tipo, aggiungi un'etichetta come bot-data e clicca su Crea database.
  3. Clicca sul database per vedere host, porta, nome del database, utente e password. Vedi Come usare i database con il tuo server per la pagina completa.

Tieni i dettagli fuori dal tuo codice

Metti i dettagli di connessione in un file che il tuo codice legge, come .env, e non fare il commit di quel file su git. In Files, crea .env:

DB_HOST=your-host
DB_PORT=3306
DB_NAME=your-database
DB_USER=your-user
DB_PASSWORD=your-password

Node.js (mysql2 e dotenv)

Aggiungi mysql2 e dotenv a package.json, poi:

require('dotenv').config();
const mysql = require('mysql2/promise');

const pool = mysql.createPool({
  host: process.env.DB_HOST,
  port: Number(process.env.DB_PORT),
  database: process.env.DB_NAME,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
});

async function main() {
  await pool.query('CREATE TABLE IF NOT EXISTS warnings (id INT AUTO_INCREMENT PRIMARY KEY, user_id VARCHAR(32), reason TEXT)');
  const [rows] = await pool.query('SELECT COUNT(*) AS n FROM warnings');
  console.log('warnings stored:', rows[0].n);
}
main();

Python (aiomysql)

Aggiungi aiomysql e python-dotenv a requirements.txt, poi:

import os
import aiomysql
from dotenv import load_dotenv

load_dotenv()

async def get_pool():
    return await aiomysql.create_pool(
        host=os.environ["DB_HOST"], port=int(os.environ["DB_PORT"]),
        db=os.environ["DB_NAME"], user=os.environ["DB_USER"],
        password=os.environ["DB_PASSWORD"], autocommit=True,
    )

Da sapere

  • Usa un pool di connessioni, non una nuova connessione per ogni comando.
  • Passa sempre l'input dell'utente come parametri della query, mai unendo il testo dentro l'SQL.
  • Includi il database nei tuoi backup: Come creare, scaricare e ripristinare i backup.
  • Se il bot non riesce a connettersi, controlla host e porta confrontandoli con la pagina del database e che la password non abbia uno spazio di troppo.

Lo ospiti già altrove? Sposta il tuo server da noi

CREA IL TUO SERVER DI GIOCO
PRONTO A INIZIARE?

Risparmia fino al 30% sul tuo nuovo server di gioco.
Prestazioni premium, attivazione immediata e affidabilità imbattibile a un prezzo migliore.

ULTIMI ARTICOLI