Database SQLite & MySQL

NusaScript mendukung koneksi langsung ke SQLite dan MySQL tanpa library tambahan.

Fungsi Database

FungsiKeterangan
db_sambung(driver, dsn)Koneksikan ke database
db_exec(db, query, ...param)Eksekusi INSERT/UPDATE/DELETE
db_query(db, query, ...param)SELECT banyak baris → array peta
db_satu(db, query, ...param)SELECT satu baris → peta
db_tutup(db)Tutup koneksi database

Koneksi SQLite

Contoh — SQLite
// File database otomatis dibuat jika belum ada
buat db = db_sambung("sqlite", "./data.db")

// Buat tabel
db_exec(db, "CREATE TABLE IF NOT EXISTS pengguna (
    id    INTEGER PRIMARY KEY AUTOINCREMENT,
    nama  TEXT NOT NULL,
    email TEXT UNIQUE NOT NULL
)")

// Insert data
db_exec(db, "INSERT INTO pengguna (nama, email) VALUES (?, ?)",
    "Budi", "budi@example.com")

// Select data
buat semua = db_query(db, "SELECT * FROM pengguna")
buat i = 0
selama i < panjang(semua) {
    buat row = semua[i]
    tampilkan(ambil(row, "id"), "-", ambil(row, "nama"))
    i += 1
}

db_tutup(db)
Output
1 - Budi

Koneksi MySQL

Contoh — MySQL
// Format DSN MySQL: user:password@tcp(host:port)/database
buat db = db_sambung("mysql",
    "root:password@tcp(localhost:3306)/toko_db")

buat produk = db_query(db,
    "SELECT id, nama, harga FROM produk WHERE harga > ? ORDER BY harga ASC",
    100000)

buat i = 0
selama i < panjang(produk) {
    buat p = produk[i]
    tampilkan(ambil(p, "nama"), "→ Rp", ambil(p, "harga"))
    i += 1
}

db_tutup(db)

Penanganan Error

Contoh — Cek hasil db_exec
buat db = db_sambung("sqlite", "./data.db")

buat hasil = db_exec(db,
    "INSERT INTO pengguna (nama, email) VALUES (?, ?)",
    "Rina", "rina@example.com")

// Cek apakah ada error (misalnya email duplikat)
jika ambil(hasil, "err") != nihil {
    tampilkan("Error:", ambil(hasil, "err"))
} lain {
    buat id_baru = ambil(hasil, "id_terakhir")
    tampilkan("Berhasil! ID baru:", id_baru)
}
Output (jika sukses)
Berhasil! ID baru: 2

Hasil db_exec

Key PetaKeterangan
id_terakhirID auto-increment terakhir yang diinsert
terpengaruhJumlah baris yang diubah
errPesan error jika gagal (nihil jika sukses)