4 require_once 'lib/WikiDB/backend/ADODB.php';
7 * WikiDB layer for ADODB-sqlite, called by lib/WikiDB/ADODB.php.
8 * Just to create a not existing database.
10 * @author: Reini Urban
12 class WikiDB_backend_ADODB_sqlite
13 extends WikiDB_backend_ADODB
18 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) {
32 $page_tbl = $this->_table_names['page_tbl'];
33 $query = sprintf("SELECT id FROM $page_tbl WHERE pagename=%s",
34 $dbh->qstr($pagename));
35 if (! $create_if_missing ) {
36 $row = $dbh->GetRow($query);
37 return $row ? $row[0] : false;
39 // attributes play this game.
40 if ($pagename === '') return 0;
42 $row = $dbh->GetRow($query);
45 // TODO: we have auto-increment since sqlite-2.3.4
46 // http://www.sqlite.org/faq.html#q1
47 $rs = $dbh->Execute(sprintf("INSERT INTO $page_tbl"
49 . " VALUES((SELECT max(id) FROM $page_tbl)+1, %s)",
50 $dbh->qstr($pagename)));
51 $id = $dbh->_insertid();
63 // c-hanging-comment-ender-p: nil
64 // indent-tabs-mode: nil