2 rcs_id('$Id: ADODB_sqlite.php,v 1.2 2004-07-05 13:56:23 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.sql");
24 `sqlite $db < $schema`;
26 $this->WikiDB_backend_ADODB($dbparams);
29 function _get_pageid($pagename, $create_if_missing = false) {
31 $page_tbl = $this->_table_names['page_tbl'];
32 $query = sprintf("SELECT id FROM $page_tbl WHERE pagename=%s",
33 $dbh->qstr($pagename));
34 if (! $create_if_missing ) {
35 $row = $dbh->GetRow($query);
36 return $row ? $row[0] : false;
38 $row = $dbh->GetRow($query);
41 // TODO: we have auto-increment since sqlite-2.3.4
42 // http://www.sqlite.org/faq.html#q1
43 $rs = $dbh->Execute(sprintf("INSERT INTO $page_tbl"
45 . " VALUES((SELECT max(id) FROM $page_tbl)+1, %s)",
46 $dbh->qstr($pagename)));
47 $id = $dbh->_insertid();
55 // (c-file-style: "gnu")
60 // c-hanging-comment-ender-p: nil
61 // indent-tabs-mode: nil