:sig DValue SQLite::query(String q) DValue SQLite::query(String q, const StringMap& params) :params q : exactly one SQL statement params : named :name parameter values; missing keys bind NULL return value : result rows as a list-shaped DValue, or empty on error/non-row statements :see 0_SQLite 2_SQLite_error :content Prepares and runs exactly one SQL statement. Extra trailing SQL statements are rejected. Parameters must be named `:name` placeholders; positional `?` placeholders are rejected. Result rows are returned as a list of maps keyed by column name. Integer, float, text, blob, and null column types map to matching `DValue` representations where null leaves the field empty. After completion, `affected_rows`, `insert_id`, and `statement_info` are updated. ```cpp DValue rows = db.query("select * from users where id=:id", {{"id", "42"}}); ```