@sqlite

The @sqlite module provides SQLite database access for persistent storage.

Import

import @sqlite

Functions

open()

(path string) -> Database

Opens or creates a SQLite database at the given path.

import @sqlite

do main() {
    mut db = sqlite.open("app.db")
    ensure sqlite.close(db)

    // Use the database...
}

Parameters: path - Path to the database file. Created if it doesn’t exist.

Returns: Database - A database handle.


close()

(db Database)

Closes a database connection.

sqlite.close(db)

exec()

(db Database, sql string, ...params string)

Executes a SQL statement with optional parameters. Use ? placeholders for parameterized queries to prevent SQL injection.

import @sqlite

do main() {
    mut db = sqlite.open("app.db")
    ensure sqlite.close(db)

    // Create table
    sqlite.exec(db, "CREATE TABLE IF NOT EXISTS users (name TEXT, age INTEGER)")

    // Insert with parameters (prevents SQL injection)
    sqlite.exec(db, "INSERT INTO users VALUES (?, ?)", "Alice", "30")
    sqlite.exec(db, "INSERT INTO users VALUES (?, ?)", "Bob", "25")
}

Parameters:

  • db - Database handle
  • sql - SQL statement
  • ...params - Optional parameters for ? placeholders

query()

(db Database, sql string, ...params string) -> [map[string:string]]

Executes a parameterized SQL query and returns results as an array of row maps.

import @sqlite

do main() {
    mut db = sqlite.open("app.db")
    ensure sqlite.close(db)

    // Query all users
    mut rows = sqlite.query(db, "SELECT * FROM users")
    for_each row in rows {
        println("${row["name"]} is ${row["age"]} years old")
    }

    // Query with parameters
    mut adults = sqlite.query(db, "SELECT * FROM users WHERE age > ?", "18")
    println("Adults:", len(adults))
}

Parameters:

  • db - Database handle
  • sql - SQL query
  • ...params - Optional parameters for ? placeholders

Returns: [map[string:string]] - Array of row maps where keys are column names.