English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основное руководство SQLite

Дополнительное руководство SQLite

Программный интерфейс SQLite

SQLite PHP

Установка

С PHP 5.3.0 расширение SQLite3 включено по умолчанию. Его можно включить в время компиляции с помощью --without-sqlite3 Отключить расширение SQLite3.

Пользователи Windows должны включить php_sqlite3.dll, чтобы использовать это расширение. С PHP 5.3.0 DLL включена в дистрибутив Windows PHP.

Для получения более详细的安装 инструкций рекомендуется просмотреть наши руководства PHP и его официальной веб-сайт.

PHP интерфейс API

Ниже приведены важные программы PHP, которые могут удовлетворить ваши потребности в использовании базы данных SQLite в программах PHP. Если вам нужно больше информации, пожалуйста, обратитесь к официальной документации PHP.

НомерAPI и описание
1public void SQLite3::open (filename, flags, encryption_key )

открывает базу данных SQLite 3. Если в構築中 включен шифр, он будет пытаться использовать ключ шифрования.

Если имя файла filename Назначьте значение ':memory:'Если это так, SQLite3::open() создаст базу данных в RAM, и она будет существовать только в течение времени сессии.

Если имя файла filename соответствует фактическому имени устройства, SQLite3::open() будет пытаться открыть файл базы данных с этим значением параметра. Если файла с таким именем не существует, будет создана новая база данных с этим именем.

Опциональные флаги используются для определения того, открывается ли SQLite-база данных. По умолчанию открывается при использовании SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.

2public bool SQLite3::exec ( string $query )

Эта функция предоставляет быстрый способ выполнения SQL-команды, которая предоставляется параметром sql. Команда может состоять из нескольких SQL-команд. Эта программа используется для выполнения безвозвратного запроса к заданной базе данных.

3public SQLite3Result SQLite3::query ( string $query )

Эта функция выполняет SQL-запрос и возвращает объект SQLite3Result, если запрос возвращает результат. SQLite3Result Объект.

4public int SQLite3::lastErrorCode ( void )

Эта функция возвращает числовой код результата последнего失败的 SQLite-запроса.

5public string SQLite3::lastErrorMsg ( void )

Эта функция возвращает текстовое описание на английском языке последнего失败的 SQLite-запроса.

6public int SQLite3::changes ( void )

Эта функция возвращает количество строк базы данных, обновленных или вставленных или удаленных в последнем SQL-запросе.

7public bool SQLite3::close ( void )

Эта функция закрывает соединение с базой данных, открытое с помощью SQLite3::open().

8public string SQLite3::escapeString ( string $value )

Эта функция возвращает строку, в которой для безопасности SQL-запрос был правильно экранирован.

Подключение к базе данных

Ниже приведен пример PHP-кода, показывающий, как подключиться к существующей базе данных. Если база данных не существует, она будет создана, и в конце вернется объект базы данных.

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "База данных успешно открыта\n";
   }
?>

Теперь давайте запустим上面的 программу и создадим нашу базу данных в текущем каталоге test.dbВы можете изменить путь по своему усмотрению. Если база данных успешно создана, то будет отображено следующее сообщение:

База данных успешно открыта

Создание таблицы

Ниже приведен PHP-код, который будет использоваться для создания таблицы в созданной ранее базе данных:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "База данных успешно открыта\n";
   }
   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Таблица успешно создана\n";
   }
   $db->close();
?>

Во время выполнения программы она создаст test.db Создайте таблицу COMPANY и отобразите следующее сообщение:

База данных успешно открыта
Таблица успешно создана

Операция INSERT

Ниже приведен PHP-код, который демонстрирует, как создать записи в созданной ранее таблице COMPANY:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "База данных успешно открыта\n";
   }
   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Записи успешно созданы\n";
   }
   $db->close();
?>

Во время выполнения программы она создаст указанные записи в таблице COMPANY и отобразит следующие строки:

База данных успешно открыта
Записи успешно созданы

Операция SELECT

Ниже приведен PHP-код, который демонстрирует, как получить и отобразить записи из созданной ранее таблицы COMPANY:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "База данных успешно открыта\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ИД = ". $row['ID'] . "\n";
      echo "ИМЯ = ". $row['NAME'] ."\n";
      echo "АДРЕС = ". $row['ADDRESS'] ."\n";
      echo "ЗАРАБОТНАЯ ПЛАТА = ". $row['SALARY'] ."\n\n";
   }
   echo "Операция выполнена успешно\n";
   $db->close();
?>

Во время выполнения вышеуказанной программы она generates следующие результаты:

База данных успешно открыта
ID = 1
NAME = Paul
ADDRESS = California
СALARY =  20000
ИД = 2
ИМЯ = Аллен
АДРЕС = Техас
ЗАРАБОТНАЯ ПЛАТА =  15000
ID = 3
NAME = Teddy
ADDRESS = Norway
СALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
СALARY =  65000
Операция выполнена успешно

Операция UPDATE

Ниже приведен PHP-код, который демонстрирует, как использовать оператор UPDATE для обновления любой записи и затем получение и отображение обновленной записи из таблицы COMPANY:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "База данных успешно открыта\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set ЗАРАБОТНАЯ ПЛАТА = 25000.00 where ИД=1;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Запись успешно обновлена\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ИД = ". $row['ID'] . "\n";
      echo "ИМЯ = ". $row['NAME'] ."\n";
      echo "АДРЕС = ". $row['ADDRESS'] ."\n";
      echo "ЗАРАБОТНАЯ ПЛАТА = ". $row['SALARY'] ."\n\n";
   }
   echo "Операция выполнена успешно\n";
   $db->close();
?>

Во время выполнения вышеуказанной программы она generates следующие результаты:

База данных успешно открыта
1 Запись успешно обновлена
ID = 1
NAME = Paul
ADDRESS = California
СALARY =  25000
ИД = 2
ИМЯ = Аллен
АДРЕС = Техас
ЗАРАБОТНАЯ ПЛАТА =  15000
ID = 3
NAME = Teddy
ADDRESS = Norway
СALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
СALARY =  65000
Операция выполнена успешно

Операция удаления

Ниже приведен PHP-код, который показывает, как использовать оператор DELETE для удаления любой записи и затем получить и отобразить оставшиеся записи из таблицы COMPANY:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "База данных успешно открыта\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID=2;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
     echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Запись успешно удалена\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ИД = ". $row['ID'] . "\n";
      echo "ИМЯ = ". $row['NAME'] ."\n";
      echo "АДРЕС = ". $row['ADDRESS'] ."\n";
      echo "ЗАРАБОТНАЯ ПЛАТА = ". $row['SALARY'] ."\n\n";
   }
   echo "Операция выполнена успешно\n";
   $db->close();
?>

Во время выполнения вышеуказанной программы она generates следующие результаты:

База данных успешно открыта
1 Запись успешно удалена
ID = 1
NAME = Paul
ADDRESS = California
СALARY =  25000
ID = 3
NAME = Teddy
ADDRESS = Norway
СALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-Mond
СALARY =  65000
Операция выполнена успешно