2 rcs_id('$Id: ADODB_sqlite.php,v 1.4 2006-08-15 13:42:20 rurban Exp $');
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 $row = $dbh->GetRow($query);
42 // TODO: we have auto-increment since sqlite-2.3.4
43 // http://www.sqlite.org/faq.html#q1
44 $rs = $dbh->Execute(sprintf("INSERT INTO $page_tbl"
46 . " VALUES((SELECT max(id) FROM $page_tbl)+1, %s)",
47 $dbh->qstr($pagename)));
48 $id = $dbh->_insertid();
56 // (c-file-style: "gnu")
61 // c-hanging-comment-ender-p: nil
62 // indent-tabs-mode: nil