PHP 8.1.0 Beta 1 available for testing

SQLite3

  • Введение
  • Установка и настройка
  • Предопределённые константы
  • SQLite3 — Класс SQLite3
    • SQLite3::backup — Резервное копирование одной базы данных в другую
    • SQLite3::busyTimeout — Установить обработчик "занято" на соединение
    • SQLite3::changes — Получить количество строк, которые были изменены/удалены/вставлены последним запросом
    • SQLite3::close — Закрыть соединение с базой данных
    • SQLite3::__construct — Создаёт экземпляр объекта SQLite3 и открывает соединение с базой
    • SQLite3::createAggregate — Зарегистрировать функцию PHP в качестве агрегирующей функции SQL
    • SQLite3::createCollation — Регистрирует функцию PHP для использования в качестве функции сортировки SQL
    • SQLite3::createFunction — Регистрирует функцию PHP для использования в качестве скалярной функции SQL
    • SQLite3::enableExceptions — Включить выброс исключений
    • SQLite3::escapeString — Возвращает правильно экранированную строку
    • SQLite3::exec — Выполняет запрос без результата к текущей базе данных
    • SQLite3::lastErrorCode — Возвращает числовой код результата последнего неудачного запроса SQLite
    • SQLite3::lastErrorMsg — Возвращает текст на английском, описывающий последний неудачный запрос SQLite
    • SQLite3::lastInsertRowID — Возвращает идентификатор строки последней вставки (INSERT) в базу данных
    • SQLite3::loadExtension — Попытаться загрузить библиотеку модуля SQLite
    • SQLite3::open — Открыть базу данных SQLite
    • SQLite3::openBlob — Открывает ресурс потока для чтения BLOB
    • SQLite3::prepare — Подготавливает SQL-запрос для выполнения
    • SQLite3::query — Выполняет SQL-запрос
    • SQLite3::querySingle — Выполняет запрос и возвращает одиночный результат
    • SQLite3::setAuthorizer — Устанавливает callback-функцию, которая будет использоваться в качестве авторизатора для ограничения действий выражения
    • SQLite3::version — Возвращает версию библиотеки SQLite3, содержит как строковую константу, так и числовую
  • SQLite3Stmt — Класс SQLite3Stmt
    • SQLite3Stmt::bindParam — Связывает параметр с переменной подготовленного запроса
    • SQLite3Stmt::bindValue — Связывает значение параметра с переменной подготовленного запроса
    • SQLite3Stmt::clear — Удаляет все текущие привязанные параметры
    • SQLite3Stmt::close — Закрывает подготовленный запрос
    • SQLite3Stmt::execute — Выполняет подготовленный запрос и возвращает объект с результирующим набором
    • SQLite3Stmt::getSQL — Получить SQL-запрос в виде строки из запроса
    • SQLite3Stmt::paramCount — Возвращает количество параметров в подготовленном запросе
    • SQLite3Stmt::readOnly — Проверяет, является ли подготовленный запрос только для чтения
    • SQLite3Stmt::reset — Сбрасывает подготовленный запрос
  • SQLite3Result — Класс SQLite3Result
    • SQLite3Result::columnName — >Возвращает имя n-ого столбца
    • SQLite3Result::columnType — Возвращает тип n-ного столбца
    • SQLite3Result::fetchArray — Выбирает одну строку из результирующего набора и помещает её в ассоциативный или нумерованный массив, или в оба сразу
    • SQLite3Result::finalize — Закрывает результирующий набор
    • SQLite3Result::numColumns — Возвращает количество столбцов в результирующем наборе
    • SQLite3Result::reset — Сбрасывает указатель результирующего набора на первую строку
add a note add a note

User Contributed Notes 4 notes

up
5
donotspam at alecos dot it
1 year ago
To enable CURL and SQLITE3 on Windows with PHP 7.4 edit httpd.conf and php.ini as below:

httpd.conf:

# load php.ini from chosen directory
PHPIniDir "${SRVROOT}/php"
# load PHP 7.4 on Windows
LoadModule php7_module "${SRVROOT}/php/php7apache2_4.dll"
# load CURL on Windows
LoadFile "${SRVROOT}/php/libssh2.dll"
# load SQLITE3 on Windows
LoadFile "${SRVROOT}/php/libsqlite3.dll"

php.ini:

extension=curl
extension=pdo_sqlite
extension=sqlite3

Now CURL and SQLITE3 are enabled and working fine on Windows on PHP 7.4.
up
16
Anonymous
9 years ago
As of PHP 5.4 support for Sqlite2 has been removed. I have a large web app that was built with sqlite2 as the database backend and thus it exploded when I updated PHP. If you're in a similar situation I've written a few wrapper functions that will allow your app to work whilst you convert the code to sqlite3.

Firstly convert your DB to an sqlite3 db.

sqlite OLD.DB .dump | sqlite3 NEW.DB

Then add the following functions to your app:

<?php
function sqlite_open($location,$mode)
{
   
$handle = new SQLite3($location);
    return
$handle;
}
function
sqlite_query($dbhandle,$query)
{
   
$array['dbhandle'] = $dbhandle;
   
$array['query'] = $query;
   
$result = $dbhandle->query($query);
    return
$result;
}
function
sqlite_fetch_array(&$result,$type)
{
   
#Get Columns
   
$i = 0;
    while (
$result->columnName($i))
    {
       
$columns[ ] = $result->columnName($i);
       
$i++;
    }
   
   
$resx = $result->fetchArray(SQLITE3_ASSOC);
    return
$resx;
}
?>

They're not perfect by any stretch but they seem to be working ok as a temporary measure while I convert the site.
Hope that helps someone
up
-11
Anonymous
3 years ago
PHP doesn't seem to support password protection for SQLite3. We can specify password on the db(I think) but you will still be able to open the DB without using a password so it is not working.
up
-29
alan at chandlerfamily dot org dot uk
10 years ago
PHP 5.3.3 introduced sqlite3::busyTimeout(int milliseconds) which does not currently seem to be documented.

It believe it acts like sqlite::busyTimeout - that is it tells sqlite3 to call an internal busyHandler if SQLITE_BUSY is returned from any call which waits a short period and then retries.  It continues to do this until milliseconds milliseconds have elapsed and then returns the SQLITE_BUSY status.

I don't know whether the default 60 second value is in place if this function is not called.
To Top