Skip to content

XKangs/SQLite

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Нужен был класс для работы с SQLite базой данных. Собственно в сети их дофига, но я решил сделать свой :) В итоге получилось довольно-таки добротно и с плюшками в виде prepare.
Под катом сам класс и рассмотр функций.


Подключение к базе данных происходит следующим способом:

$mydb = new SQLite($file_path [, $auto=true]);

$file_path — путь до БД
Возвращает false если:

  • база уже открыта
  • путь до БД не задан
  • пусть до БД это не файл
  • не удалось открыть базу данных

$auto опция, устаналивающая, открывать БД сразу после создания класса (true), или открывать функцией SQLite::open([$mode]);

SQLite::open([$mode]);

$mode — не обязательный параметр, устанавливает режим прав доступа на файл.


SQLite::close();

Закрывает базу данных.


SQLite::query($query);

Выполняет запрос к базе данных
$query — запрос (например: SELECT * FROM table)


SQLite::fetch($type);

Выбирает следующую запись из результата запроса и возвращает массив
$type — тип индексации возвращаемого объекта.
бывает нескольких видов:

  • SQLite::ASSOC — ассоциативный массив
  • SQLite::NUM — числовой массив
  • SQLite::BOTH — числовой и ассоциативный массив

SQLite::fetchAll($type);

Выбирает все записи из результата запроса и возвращает многомерный массив
$type — тип индексации возвращаемого объекта.
бывает нескольких видов:

  • SQLite::ASSOC — ассоциативный массив
  • SQLite::NUM — числовой массив
  • SQLite::BOTH — числовой и ассоциативный массив

SQLite::last_insert_id();

Возвращает идентификатор последней вставленной записи


SQLite::rows();

Возвращает количество записей в результате запроса


SQLite::getColumns($table);

Возвращает массов столбцов таблицы $table


SQLite::getTables();

Возвращает все таблицы данной базы данных в виде массива.


escape_string()

Функция для экранирования символов, которая может быть применена как:

SQLite::escape_string($query);

Так и в самом запросе:

$query = "SELECT * FROM table WHERE text='escape_string($text)'";

SQLite::prepare($query);

Связывание параметра с указанной переменной. Работает в связке с функцией:

SQLite::bindParam($bind, $string[, $type]);

$bind — параметр
$string — текст, который будет заменять параметр
$type — тип
Типы бывают разных видов:

  • SQLite::IS_INT — числовой
  • SQLite::IS_STR — строковый
  • регулярное выражение — можно подставить также регулярное выражение

SQLite::execute();

Служит для выполнения запроса, если запрос задан через связки параметров.


Также примеры по каждой функции.

Подключение к базе данных, создание таблицы, добавление записи, вывод последнего идентификатора, удаление последней строки и закрытие соединения.

$mydb = new SQLite(ENGINE.'/files/history.db');
$mydb->query("CREATE TABLE history(id INTEGER AUTOINCREMENT, name VARCHAR(128) NOT NULL, PRIMARY KEY(id))");
//
$mydb->query("INSERT INTO history VALUES(NULL, 'name')");
//
$last_id = $mydb->last_insert_id();
echo $last_id;
//
$mydb->query("DELETE FROM history WHERE id='{$last_id}'");
//
$mydb->close();

Подключение к базе данных, создание таблицы, добавление записи с параметром, вывод всех записей, закрытие соединения.

$mydb = new SQLite(ENGINE.'/files/history.db');
$mydb->query("CREATE TABLE history(id INTEGER AUTOINCREMENT, name VARCHAR(128) NOT NULL, PRIMARY KEY(id))");
//
$query = $mydb->prepare("INSERT INTO history VALUES(NULL, :name)");
$query->bindParam(':name', 'John', SQLite::IS_STR);
$query->execute();
 
$result = $mydb->query("SELECT * FROM history")->fetchAll(SQLite::ASSOC);
 
var_dump($result);
//
$mydb->close();

Подключение к базе данных, создание таблицы, получение всех таблиц, получение всех столбцов в таблице, закрытие соединения.

$mydb = new SQLite(ENGINE.'/files/history.db');
$mydb->query("DROP TABLE history");
$mydb->query("CREATE TABLE history(id INTEGER AUTOINCREMENT, name VARCHAR(128) NOT NULL, PRIMARY KEY(id))");
//
 
$tables = $mydb->getTables();
$columns = $mydb->getColumns('history');
 
var_dump($tables);
var_dump($columns);
//
$mydb->close();

Подключение к базе данных, создание таблицы, добавление записи + экранирование кавычек специальной функцией escape_string(), закрытие соединения

$mydb = new SQLite(ENGINE.'/files/history.db');
$mydb->query("DROP TABLE history");
$mydb->query("CREATE TABLE history(id INTEGER AUTOINCREMENT, name VARCHAR(128) NOT NULL, adress VARCHAR(128) NOT NULL, PRIMARY KEY(id))");
//
$name = 'Jogn1"';
$adress = "Street 10'1";
//
$mydb->query("INSERT INTO history VALUES(NULL, 'escape_string($name)', '".SQLite::escape_string($adress)."')");
 
var_dump($mydb->query("SELECT * FROM history")->fetchAll(ASSOC));
//
$mydb->close();

About

SQLite PHP class

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 100.0%