Regarding the table creation you can optimize this code a bit by using the built in " CREATE TABLE IF NOT EXISTS <tablename>". This will let the table creation decision to the sqlite engine.
Then, if i may, your code could be something like :
<?php
if ($db = new SQLiteDatabase('filename')) {
// first let the engine check table, and create it eventualy
$q = @$db->query('CREATE TABLE IF NOT EXISTS tablename (id int, requests int, PRIMARY KEY (id))';
//the rest of the code, according error checks etc
// ...
?>
For more "tweaks" feel free to look at sqlite language ref : http://www.sqlite.org/lang_createtable.html
Have fun with this powerfull&simple engine :)
SQLite
- Introducción
- Instalación/Configuración
- Constantes predefinidas
- SQLite Funciones
- sqlite_array_query — Ejecutar una consulta en una base de datos dada y devolver un array
- sqlite_busy_timeout — Establecer la duración del tiempo de espera de ocupación, o deshabilitar los gestores ocupados
- sqlite_changes — Devuelve el número de filas que han sido cambiadas mediante la sentencia SQL más reciente.
- sqlite_close — Cierra un base de datos SQLite abierta
- sqlite_column — Obtiene una columna de la fila actual de un conjunto de resultados
- sqlite_create_aggregate — Registrar FDU totalizadora para usarla en sentencias SQL
- sqlite_create_function — Registra una función "regular" definida por el usuario para ser usada en sentencias SQL
- sqlite_current — Obtiene la fila actual como un array de un conjunto de resultado
- sqlite_error_string — Devuelve la descripción de un código de error
- sqlite_escape_string — Escapa una cadena para ser usada como un parámetro para una consulta
- sqlite_exec — Ejecutar una consulta sin resultado en una base de datos dada
- sqlite_factory — Abrir una base de datos SQLite y devolver un objeto SQLiteDatabase
- sqlite_fetch_all — Recupera todas las filas de un conjunto de resultados como un array de arrays
- sqlite_fetch_array — Recupera la siguiente fila de un conjunto de resultados como un array
- sqlite_fetch_column_types — Devuelve un array con los tipos de columna de una tabla en particular
- sqlite_fetch_object — Recupera la siguiente fila de un conjunto de resultados como un objeto
- sqlite_fetch_single — Recupera la primera columna de un conjunto de resultados como cadena
- sqlite_fetch_string — Alias de sqlite_fetch_single
- sqlite_field_name — Devuelve el nombre de un campo en particular
- sqlite_has_more — Comprueba si están o no disponibles más filas
- sqlite_has_prev — Comprueba si está o no disponible una fila anterior
- sqlite_key — Devuelve el índice de la fila actual
- sqlite_last_error — Devuelve el código de error del último error de una base de datos
- sqlite_last_insert_rowid — Devuelve el ID fila de la fila insertada más recientemente
- sqlite_libencoding — Devuelve la codificación de la biblioteca SQLite vinculada
- sqlite_libversion — Devuelve la versión de la biblioteca SQLite vinculada
- sqlite_next — Busca el número de fila siguiente
- sqlite_num_fields — Devolver el número de campos de un conjunto de resultados
- sqlite_num_rows — Devolver el número de filas de un conjunto de resultados almacenado en buffer
- sqlite_open — Abrir una base de datos SQLite y crear la base de datos si no existe
- sqlite_popen — Abrir un gestor persistente a una base de datos SQLite y crearla si no existe
- sqlite_prev — Busca el número de fila anterior de un conjunto de resultados
- sqlite_query — Ejecutar una consulta en una base de datos dada y devolver un gestor de resultados
- sqlite_rewind — Busca el primer número de fila
- sqlite_seek — Busca un número de fila en particular en un conjunto de resultados almacenado en buffer
- sqlite_single_query — Ejecuta una consulta y devuelve un array para cada colúmna única o el valor de la primera fila
- sqlite_udf_decode_binary — Decodificar datos binarios pasados como parámetros a una FDU
- sqlite_udf_encode_binary — Codificar datos binarios antes de devolverlos desde una UDF
- sqlite_unbuffered_query — Ejecutar una consulta que no precargue ni almacene en buffer toda la información
- sqlite_valid — Devuelve si están disponibles más filas
nosdudefr at gmail dot com
06-May-2011 03:34
Anonymous
24-Jul-2010 04:12
As of July 2010, there are two ways to use SQLite from PHP:
- procedural: sqlite (=sqlite2), sqlite3
- object-oriented: SQLite3, PDO
Andrew Paul Dickey
11-Jun-2009 09:43
If you intend to implement 2.x releases of SQLite with your development you are in the right place, as this library is suitable for use with your application (reference http://us.php.net/manual/en/book.sqlite.php).
If you intend to use SQLite 3.x releases of SQLite with your development please refer to the section on PHP Data Objects, and specifically the PDO-SQLite implementation available at(references: http://us.php.net/manual/en/book.pdo.php , http://au2.php.net/manual/en/ref.pdo-sqlite.php).
It is my hope that this post will save both new users and experienced developers time during their initial or a new implementation of PHP & SQLite by encouraging them to use the appropriate libraries.
saivert at saivert dot com
30-Apr-2008 12:02
How to open a database, create a table if it doesn't exist and inserting initial value.
<?php
if ($db = new SQLiteDatabase('filename')) {
$q = @$db->query('SELECT requests FROM tablename WHERE id = 1');
if ($q === false) {
$db->queryExec('CREATE TABLE tablename (id int, requests int, PRIMARY KEY (id)); INSERT INTO tablename VALUES (1,1)');
$hits = 1;
} else {
$result = $q->fetchSingle();
$hits = $result+1;
}
$db->queryExec("UPDATE tablename SET requests = '$hits' WHERE id = 1");
} else {
die($err);
}
?>
Use this as boilerplate code for any new project using SQLite.
