4 psi.directory={PWD}:{PWD}/../../psi.d
5 psi.blacklist.decls="sqlite3_str*,sqlite3_*serialize,sqlite3_stmt_scanstatus*,sqlite3_snapshot*,sqlite3_win32*"
8 extension_loaded("psi") or printf("%s\n", "skip - need ext/psi");
9 function_exists("sqlite3\\open") or printf("%s\n", "skip - need libsqlite3");
15 var_dump(sqlite3\version());
17 copy(__DIR__."/sqlite001.db", __DIR__."/sqlite001.tmp");
19 $rc = sqlite3\open(__DIR__."/sqlite001.tmp", $db);
21 printf("%s\n", sqlite3\errstr($rc));
24 function callback($context, int $argc, array $argv, array $cols) {
25 $context->row = $context->row ?? 0;
27 for ($i = 0; $i < $argc; ++$i) {
28 printf("%d: %s = %s\n", $context->row, $cols[$i], $argv[$i] ?? "<NULL>");
34 $rc = sqlite3\exec($db, "SELECT * FROM test", "callback", new stdClass, $error);
36 printf("%s: '%s'\n", sqlite3\errstr($rc), $error);
39 $rc = sqlite3\exec($db, "INSERT INTO test VALUES (3,'three')", "callback", new stdClass, $error);
41 printf("%s: '%s'\n", sqlite3\errstr($rc), $error);
44 $rc = sqlite3\exec($db, "SELECT * FROM test", "callback", new stdClass, $error);
46 printf("%s: '%s'\n", sqlite3\errstr($rc), $error);
49 $rc = sqlite3\exec($db, "SELECT *", "callback", new stdClass, $error);
51 printf("%s: '%s'\n", sqlite3\errstr($rc), $error);
56 $rc = sqlite3\exec($db, "SELECT *", "callback", new stdClass, $error);
58 printf("%s: '%s'\n", sqlite3\errstr($rc), $error);
86 @unlink(__DIR__."/sqlite001.tmp");