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
- Введение
- Установка и настройка
- Предопределенные константы
- SQLite
- sqlite_array_query — Выполняет запрос к базе данных и возвращает результат в виде массива
- sqlite_busy_timeout — Устанавливает или полностью отключает время ожидания
- sqlite_changes — Возвращает количество записей, которые были изменены последним SQL-запросом
- sqlite_close — Закрывает открытую базу данных SQLite
- sqlite_column — Выбирает столбец из текущей записи результата запроса
- sqlite_create_aggregate — Регистрирует агрегирующую функцию для использования в SQL-запросах
- sqlite_create_function — Регистрирует "стандартную" функцию (UDF) для использования в SQL-запросах
- sqlite_current — Возвращает текущую запись из результирующего набора в виде массива
- sqlite_error_string — Возвращает строку с описанием ошибки
- sqlite_escape_string — Экранирует спецсимволы в строке для использования в запросе
- sqlite_exec — Выполняет запрос, не возвращающий записей
- sqlite_factory — Открывает базу данных SQLite и возвращает объект
- sqlite_fetch_all — Выбирает все записи из результата запроса и возвращает многомерный массив
- sqlite_fetch_array — Выбирает следующую запись из результата запроса и возвращает массив
- sqlite_fetch_column_types — Возвращает массив, содержащий информацию о типах полей в таблице
- sqlite_fetch_object — Выбирает следующую запись из результата запроса и возвращает объект
- sqlite_fetch_single — Выбирает значение первого поля из результата запроса и возвращает в виде строки
- sqlite_fetch_string — Псевдоним sqlite_fetch_single
- sqlite_field_name — Возвращает имя указанного поля
- sqlite_has_more — Определяет, есть ли еще записи в результате запроса
- sqlite_has_prev — Определяет, доступна ли предыдущая запись
- sqlite_key — Возвращает текущую позицию указателя
- sqlite_last_error — Возвращает код ошибки последней операции с SQLite
- sqlite_last_insert_rowid — Возвращает идентификатор последней вставленной записи
- sqlite_libencoding — Возвращает кодировку, используемую подключенной библиотекой SQLite
- sqlite_libversion — Возвращает версию подключенной библиотеки SQLite
- sqlite_next — Переходит на следующую запись
- sqlite_num_fields — Возвращает количество полей в результате запроса
- sqlite_num_rows — Возвращает количество записей в результате запроса
- sqlite_open — Открывает базу данных SQLite или создает ее, если она не существует
- sqlite_popen — Открывает постоянное подключение к базе данных SQLite или создает ее, если она не существует
- sqlite_prev — Переходит на предыдущую запись
- sqlite_query — Выполняет запрос к базе данных и возвращает идентификатор результата
- sqlite_rewind — Переходит к первой записи
- sqlite_seek — Переходит к определенному номеру записи в буферизованном результирующем наборе
- sqlite_single_query — Выполняет запрос и возвращает массив со значениями одного поля или первую запись
- sqlite_udf_decode_binary — Декодирует бинарные данные, переданные в качестве параметров в UDF
- sqlite_udf_encode_binary — Кодирует бинарные данные перед тем как вернуть их из UDF
- sqlite_unbuffered_query — Выполняет запрос без буферизации результатов
- sqlite_valid — Проверяет, есть ли еще доступные ряды
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.
