3 require_once 'lib/WikiDB/backend/ADODB.php';
6 * WikiDB layer for ADODB-sqlite, called by lib/WikiDB/ADODB.php.
7 * Just to create a not existing database.
11 class WikiDB_backend_ADODB_sqlite
12 extends WikiDB_backend_ADODB
17 function WikiDB_backend_ADODB_sqlite($dbparams)
19 $parsed = parseDSN($dbparams['dsn']);
20 if (!file_exists($parsed['database'])) {
21 // creating the empty database
22 $db = $parsed['database'];
23 $schema = FindFile("schemas/sqlite-initialize.sql");
24 `sqlite $db < $schema`;
25 `echo "CREATE USER wikiuser" | sqlite $db`;
27 $this->WikiDB_backend_ADODB($dbparams);
30 function _get_pageid($pagename, $create_if_missing = false)
33 $page_tbl = $this->_table_names['page_tbl'];
34 $query = sprintf("SELECT id FROM $page_tbl WHERE pagename=%s",
35 $dbh->qstr($pagename));
36 if (!$create_if_missing) {
37 $row = $dbh->GetRow($query);
38 return $row ? $row[0] : false;
40 // attributes play this game.
41 if ($pagename === '') return 0;
43 $row = $dbh->GetRow($query);
46 // TODO: we have auto-increment since sqlite-2.3.4
47 // http://www.sqlite.org/faq.html#q1
48 $rs = $dbh->Execute(sprintf("INSERT INTO $page_tbl"
50 . " VALUES((SELECT max(id) FROM $page_tbl)+1, %s)",
51 $dbh->qstr($pagename)));
52 $id = $dbh->_insertid();
64 // c-hanging-comment-ender-p: nil
65 // indent-tabs-mode: nil