@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 handlesql- 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 handlesql- SQL query...params- Optional parameters for?placeholders
Returns: [map[string:string]] - Array of row maps where keys are column names.