Revision: 13175
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at April 13, 2009 17:26 by Keef
Initial Code
/*
* Description: Very simple and lightweight SQLite wrapper class, it also has some SQL injection protection.
* License: Competely public domain with no warranty whatsoever.
*/
Class SQLiteDB {
private $db;
private $debug = true;
var $argChar = '?';
// For debugging purposes.
var $statement;
var $old_statements = array();
function __construct($filename = null) {
$this->open($filename);
}
function open($filename = null) {
// If no file is specified create a temporary table in memory.
if (empty($filename))
$filename = ':memory:';
if (!$this->db = sqlite_open($filename, 0666, $sqliteerror))
die($sqliteerror);
}
function execute($statement, $arguments = null) {
if (!empty($arguments)) {
for ($i = 0; $i < count($arguments); $i++) {
$arguments[$i] = "'". addslashes(htmlspecialchars($arguments[$i], ENT_QUOTES)). "'";
}
$statement = vsprintf(str_replace($this->argChar, '%s', $statement), $arguments);
}
// For debugging purposes.
if ($debug) {
$this->statement = $statement;
$this->old_statements[] = $statement;
}
$rs = sqlite_query($this->db, $this->statement);
return new ResultSet($rs);
}
function close() {
sqlite_close($this->db);
}
function lastInsertRowId() {
return sqlite_last_insert_rowid($db);
}
}
Class ResultSet {
private $rs;
function __construct($rs) {
$this->rs = $rs;
}
function isValidRow() {
return sqlite_valid($this->rs);
}
function next() {
return sqlite_next($this->rs);
}
function fieldCount() {
$row = sqlite_current($this->rs);
return (count($row) / 2);
}
function fieldName($fieldIndex) {
return sqlite_field_name($this->rs, $fieldIndex);
}
function field($fieldIndex) {
$row = sqlite_current($this->rs);
return stripslashes(htmlspecialchars_decode($row[$fieldIndex]));
}
}
Initial URL
Initial Description
Initial Title
SQLite lightweight wrapper
Initial Tags
Initial Language
PHP