Skip to content

Connection & Queries (db)

Connection — Database Handle

MethodDescription
Connection.sqlite(path)Connect to SQLite database
Connection.postgres(conninfo)Connect to PostgreSQL
Connection.mysql(conninfo)Connect to MySQL
Connection.redis(conninfo)Connect to Redis
Connection.open(driver, conninfo)Generic driver connection
.ok(): boolCheck if connection succeeded
.errMsg(): stringGet error message
.exec(sql): i64Execute statement, return rows affected
.query(sql): QueryResultExecute query, return result set
.execWithParams(sql, params)Parameterized execute
.queryWithParams(sql, params)Parameterized query
.queryValue(sql): stringGet single value (auto-frees result)
.execOk(sql): boolExecute and return success/failure
.begin(): boolStart transaction
.commit(): boolCommit transaction
.rollback(): boolRollback transaction
.close()Close connection

QueryResult — Result Set

MethodDescription
.ok(): boolCheck if query succeeded
.errMsg(): stringGet error message
.rowsAffected(): i64Number of affected rows
.columnCount(): i32Number of columns
.columnName(col): stringGet column name by index
.next(): boolAdvance to next row
.text(col): stringGet column value as string
.isNull(col): boolCheck if column is NULL
.length(col): u64Get column data length
.free()Free result set

Transactions

rust
conn.begin();
conn.exec("INSERT INTO orders VALUES (1, 'pending')");
conn.exec("UPDATE inventory SET stock = stock - 1 WHERE id = 42");
if success {
    conn.commit();
} else {
    conn.rollback();
}

Parameterized Queries

rust
let! params = Vec.new<string>();
params.push("Alice");
params.push("30");

let rows = conn.execWithParams(
    "INSERT INTO users (name, age) VALUES ($1, $2)", &params
);

Released under the MIT License.