Database:query(sql)method

Executes a SQL statement and returns an iterator function to iterate over each row (represented as a Lua table with column names as keys).

Parameters

sql

A string that contains a SQL statement.

Return value

Returns the result of the SQL statement as an iterator function to iterate over each row (represented as a Lua table with column names as keys).

Example

--! luart-extensions import sqlite -- Create an in-:memory: database local db = sqlite.Database(":memory:") -- Create a new table "users" db:exec([[CREATE TABLE users ( id integer PRIMARY KEY, name text NOT NULL, age integer)]]) -- Insert new rows db:exec("INSERT INTO users (name, age) VALUES('John', 32)") db:exec("INSERT INTO users (name, age) VALUES('Jane', 36)") db:exec("INSERT INTO users (name, age) VALUES('Marc', 25)") -- print all the users, row by row for user in db:query("SELECT * FROM users") do print(user.name, user.age) end