<?php
/******************************************************************************/
/* class_sqlite.php: Small class to easily use SQLite PHP extension. */
/* Copyright (C) 2005 Ken Stanley <phpclasses@kennethpaul.com> */
/* */
/* This library is free software; you can redistribute it and/or */
/* modify it under the terms of the GNU Lesser General Public */
/* License as published by the Free Software Foundation; either */
/* version 2.1 of the License, or (at your option) any later version. */
/* */
/* This library is distributed in the hope that it will be useful, */
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU */
/* Lesser General Public License for more details. */
/* */
/* You should have received a copy of the GNU Lesser General Public */
/* License along with this library; if not, write to the Free Software */
/* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
/******************************************************************************/
class sqlite {
var $num_rows = 0;
var $resource = '';
function sqlite($_sqlite_file, $_sqlite_mode = '0666') {
if (!extension_loaded('sqlite')) {
if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {
$extension = "php_sqlite.dll";
} else {
$extension = "sqlite.so";
}
@dl($extension);
}
if (is_readable($_sqlite_file) && is_writable($_sqlite_file)) {
$this->resource = sqlite_open($_sqlite_file, $_sqlite_mode);
if (is_resource($this->resource)) {
return TRUE;
} else {
$this->last_error();
return FALSE;
}
} else {
trigger_error("$_sqlite_file: Cannot read/write database file", E_USER_WARNING);
return FALSE;
}
}
function close() {
if (is_resource($this->resource)) {
return sqlite_close($this->resource);
} else {
return FALSE;
}
}
function query($_query_sql, $_query_type = SQLITE_BOTH) {
if (is_resource($this->resource)) {
$_query_result = sqlite_query($_query_sql, $this->resource, $_query_type);
if (is_resource($_query_result)) {
$this->num_rows = sqlite_num_rows($_query_result);
} else {
$this->last_error();
return FALSE;
}
return $_query_result;
} else {
return FALSE;
}
}
function fetch_assoc($_fetch_assoc_query) {
if (is_resource($this->resource)) {
$_fetch_assoc_qhandle = $this->query($_fetch_assoc_query, SQLITE_ASSOC);
if (is_resource($_fetch_assoc_qhandle)) {
while ($_fetch_assoc_row = sqlite_fetch_array($_fetch_assoc_qhandle, SQLITE_ASSOC)) {
$_fetch_assoc_result[] = $_fetch_assoc_row;
}
} else {
return FALSE;
}
if (isset($_fetch_assoc_result) && is_array($_fetch_assoc_result)) {
return $_fetch_assoc_result;
} else {
return FALSE;
}
} else {
return FALSE;
}
}
function table_exists($_table_exists_table) {
if (is_resource($this->resource)) {
$_table_exists_sql = "SELECT COUNT(*) FROM sqlite_master";
$_table_exists_sql .= " WHERE type='table'";
$_table_exists_sql .= " AND name='$_table_exists_table'";
$_table_exists_result = $this->query($_table_exists_sql);
if (is_resource($_table_exists_result)) {
$_table_exists_count = intval(sqlite_fetch_single($_table_exists_result));
} else {
return FALSE;
}
return ($_table_exists_count > 0);
} else {
return FALSE;
}
}
function create_table($_create_table_table) {
if (is_resource($this->resource)) {
$_create_table_sql = "CREATE TABLE $_create_table_table";
$_create_table_result = $this->query($_create_table_sql);
if (is_resource($_create_table_result)) {
return TRUE;
} else {
return FALSE;
}
} else {
return FALSE;
}
}
function last_rowid() {
if (is_resource($this->resource)) {
$_last_rowid_result = sqlite_last_insert_rowid($this->resource);
if ($_last_rowid_result > 0) {
return $_last_rowid_result;
} else {
return FALSE;
}
} else {
return FALSE;
}
}
function last_error($_last_error_return = FALSE) {
$_last_error_mesg = sprintf(
"<strong>SQLite Error:</strong> %s<br />",
sqlite_error_string(sqlite_last_error($this->resource))
);
if ($_last_error_return) {
return $_last_error_mesg;
} else {
echo $_last_error_mesg;
return TRUE;
}
}
}
?>
|