Подключение к базе данных SQLite3 с помощью PHP PDO

Это начало мини-курса по использованию SQLite3 для PHP совместно c PDO. Будет 7-8 уроков, в которых я подробно расскажу, как использовать SQLite3 совместно c PDO в PHP приложении. Мини курс рассчитан на новичков и является отличным пособием для старта.

В этом уроке я покажу вам, как установить соединение с базой данных SQLite из PHP с помощью PDO. По умолчанию PHP включает расширение SQLite, поэтому вам не нужно дополнительно настраивать PHP, чтобы он работал с SQLite.

Сначала создайте директорию проекта. Затем в ней создайте новый файл composer.json со следующим кодом:

{
  "autoload": {
    "psr-4": {
      "App\\": "app/"
    }
  }
}

Здесь мы сопоставляем пространство имен App с папкой /app.

Затем создайте еще одну директорию с именем db для хранения файла базы данных SQLite.

После этого откройте инструмент командной строки, перейдите в корневую директорию проекта и введите следующую команду:

composer update

Появится следующее сообщение:

>composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Generating autoload files	

Кроме того, Composer также создает новую папку с именем vendor, как показано ниже:

Структура проекта

Наконец, создайте файл с именем index.php в корневой директории и добавьте следующий код:

require 'vendor/autoload.php';

Отныне, если мы хотим использовать какой-либо класс в директории приложения, нам просто нужно объявить и использовать его.

Сначала создайте новый файл Config.php в директории приложения и добавьте новый класс с именем Config следующим образом:

<?php
 
namespace App;
 
class Config {
 /**
  * path to the sqlite file
  */
  const PATH_TO_SQLITE_FILE = 'db/phpsqlite.db';

}

Константа PATH_TO_SQLITE_FILE используется для хранения пути к файлу базы данных sqlite, который находится в папке db.

Во-вторых, создайте новый файл SQLiteConnection.php и добавьте класс SQLiteConnection следующим образом:

<?php
namespace App;
 
/**
 * SQLite connnection
 */
class SQLiteConnection {
  /**
   * PDO instance
  * @var type 
  */
  private $pdo;
 
  /**
  * return in instance of the PDO object that connects to the SQLite database
  * @return \PDO
  */
  public function connect() {
    if ($this->pdo == null) {
      $this->pdo = new \PDO("sqlite:" . Config::PATH_TO_SQLITE_FILE);
      if (!filesize(self::SQLITE_FILE))
          throw new \Exception('There are no tables in the database!');
      }
    return $this->pdo;
  }
}

Чтобы установить соединение с базой данных SQLite, нам нужно создать новый экземпляр класса PDO и передать строку соединения конструктору объекта PDO.

Предположим, что файл базы данных SQLite находится в папке db, мы используем следующую строку подключения:

sqlite:db/phpsqlite.db

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

Обратите внимание, что когда PHP подключается к базе данных SQLite, если она не существует, PHP создаст новый файл базы данных SQLite.

$this->pdo используется для хранения экземпляра объекта PDO. В методе connect() мы проверяем, установлено ли соединение с базой данных. Если нет, мы создаем новый экземпляр объекта PDO, в противном случае мы возвращаем объект PDO.

Если необходимо сгенерировать файла автозагрузки заново:

composer dump-autoload -o

Чтобы установить соединение с базой данных SQLite, мы используем следующий код в файле index.php:

<?php
 
require 'vendor/autoload.php';
 
use App\SQLiteConnection;
 
$pdo = (new SQLiteConnection())->connect();
if ($pdo != null)
  echo 'Connected to the SQLite database successfully!';
else
  echo 'Whoops, could not connect to the SQLite database!';

Если вы проверите папку db, вы увидите файл с именем phpsqlite.db.

Создание БД

Когда вы создаете новый экземпляр PDO, он всегда будет выдавать исключение PDOException в случае сбоя соединения.

Для обработки исключения вы можете использовать блок try catch следующим образом:

try {
  $this->pdo = new \PDO("sqlite:" . Config::PATH_TO_SQLITE_FILE);
} catch (\PDOException $e) {
  // handle the exception here
}

В этом уроке я показал, как настроить структуру проекта PHP и установить соединение с базой данных SQLite.

Источник

Другие статьи

SQLite
SQLite3: Транзакции с использованием PHP PDO
SQLite3: Транзакции с использованием PHP PDO

В этом уроке мы рассмотрим, как использовать функции транзакций PHP PDO для обеспечения целостности данных в б...

SQLite
SQLite3: Работа с BLOB-типом данных
SQLite3: Работа с BLOB-типом данных

В этом уроке вы узнаете, как управлять BLOB-данными в базе данных SQLite с помощью PHP PDO. BLOB обозначает бо...

SQLite
SQLite3: Получение данных из таблиц с помощью PHP PDO
SQLite3: Получение данных из таблиц с помощью PHP PDO

В этом уроке показано, как можно различными способами запрашивать данные из таблицы SQLite с помощью PHP PDO....