$stmt = $db->prepare("SELECT * FROM foo WHERE bar = :id"); VS($stmt->paramcount(), 1); $id = "DEF"; VERIFY($stmt->bindvalue(":id", $id, SQLITE3_TEXT)); $id = "ABC"; $res = $stmt->execute(); VS($res->fetcharray(SQLITE3_NUM), array("DEF")); VERIFY($stmt->clear()); VERIFY($stmt->reset()); $id = "DEF"; VERIFY($stmt->bindparam(":id", $id, SQLITE3_TEXT)); $id = "ABC"; $res = $stmt->execute(); VS($res->fetcharray(SQLITE3_NUM), array("ABC")); VERIFY($db->createfunction("tolower", "lower", 1)); $res = $db->query("SELECT tolower(bar) FROM foo"); VS($res->fetcharray(SQLITE3_NUM), array("abc")); VERIFY($db->createaggregate("sumlen", "sumlen_step", "sumlen_fini", 1)); $res = $db->query("SELECT sumlen(bar) FROM foo"); VS($res->fetcharray(SQLITE3_NUM), array(6)); // Since minor version can change frequently, just test the major version VS($db->version()['versionString'][0], "3"); VERIFY((int) $db->version()['versionNumber'] > (int) 3000000); $db->close(); unlink(":memory:test"); // Check that a PHP Exception is thrown for nonexistant databases try { new SQLite3('/' . uniqid('random', true) . '/db'); } catch (Exception $e) { var_dump(true); }