Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

phpajaxjson/SQLite

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
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%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.