Это начало мини-курса по использованию SQLite3 для PHP совместно c PDO. Будет 7-8 уроков, в которых я подробно расскажу, как использовать SQLite3 совместно c PDO в PHP приложении. Мини курс рассчитан на новичков и является отличным пособием для старта.
В этом уроке я покажу вам, как установить соединение с базой данных SQLite из PHP с помощью PDO. По умолчанию PHP включает расширение SQLite, поэтому вам не нужно дополнительно настраивать PHP, чтобы он работал с SQLite.
Структура проекта. Composer.
Сначала создайте директорию проекта. Затем в ней создайте новый файл 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';
Отныне, если мы хотим использовать какой-либо класс в директории приложения, нам просто нужно объявить и использовать его.
Установка соединения с базой данных SQLite
Сначала создайте новый файл 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.
Комментарии (0)
Пока еще не было комментариев ✍️