andrey-tech / sqlitedb-php
适用于PHP7+的简单SQLite 3数据库操作库,用于简单项目。
3.0.1
2023-02-19 07:10 UTC
Requires
- php: ^7.2|^8.0
- ext-pdo: *
This package is auto-updated.
Last update: 2024-09-19 10:48:20 UTC
README
适用于PHP7+的简单SQLite 3数据库操作库,用于简单项目。
内容
安装
$ composer require andrey-tech/sqlitedb-php:"^3.0"
SQLiteDB 类
最终的 \AndreyTech\SQLiteDB\SQLiteDB 类旨在用于与SQLite 3数据库交互。如果在 \AndreyTech\SQLiteDB 命名空间中的类出现错误,将抛出 \AndreyTech\SQLiteDB\SQLiteDBException 类的异常。
\AndreyTech\SQLiteDB\SQLiteDB 类包含以下公共方法
__construct(array $config = [], array $options = []): SQLiteDB类构造函数。$config- 数据库连接配置;$options- PDO连接选项。
connect(): void执行到数据库服务器的连接。在正常情况下不需要,因为数据库服务器的连接将在第一次查询时自动执行。disconnect(): void执行从数据库服务器的断开。在正常情况下不需要,因为数据库服务器的断开将在对象类销毁时自动执行。getDSN(): string返回到数据库服务器连接的DSN字符串。getConfig(): array返回数据库连接配置。getOptions(): array返回PDO连接选项。getPDO(): ?PDO如果已建立数据库连接,则返回PDO类的对象。isConnected(): bool返回数据库连接标志:true- 已建立连接,false- 未建立连接。getDebugMode(): bool返回调试模式状态标志。setDebugMode(bool $debugMode): void启用或禁用调试模式,并在STDOUT中输出信息。doStatement(string $statement, array $values = [], array $prepareOptions = []): \PDOStatement
准备查询,缓存准备好的查询并执行准备好的查询。
返回\PDOStatement类的对象。$statement- SQL操作符;$values- SQL操作符的值数组;$prepareOptions- 准备查询的数据库驱动程序选项。
beginTransaction(): void初始化事务。commitTransaction(): void提交事务。rollbackTransaction(): void回滚事务。fetchAll(\PDOStatement $stmt): \Generator使用生成器选择所有记录。$stmt-\PDOStatement类的对象。
getLastInsertId(string $idName = null): string返回最后插入记录的id值。$idName-id列的名称。
createInStatement(array $in = []): string创建并返回用于表达式的字符串IN (?, ?, ?,...)。$in- 表达式IN (?, ?, ?,...)内部的值数组。
以下是一些配置和连接选项及其默认值
$config = [ 'database' => './db.sqlite', // Имя файла СУБД SQLite 'username' => null, // Имя пользователя 'password' => null, // Пароль пользователя ]; $options = [ PDO::ATTR_TIMEOUT => 60, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ];
示例
use AndreyTech\SQLiteDB\SQLiteDB; use AndreyTech\SQLiteDB\SQLiteDBException; try { // Устанавливаем имя файла СУБД SQLiteDB $config = [ 'database' => 'my_database.sqlite', ]; $db = new SQLiteDB($config); // Включаем отладочный режим с выводом информации в STDOUT $db->setDebugMode(true); // Отправляем запрос без параметров $stmt = $db->doStatement(' SELECT COUNT(*) AS count FROM contacts '); // Выбираем все записи print_r($stmt->fetchAll()); // Отправляем с использованием именованных параметров $stmt = $db->doStatement(' SELECT * FROM contacts WHERE status = :status LIMIT 10 ', [ 'status' => 1 ]); // Выбираем все записи print_r($stmt->fetchAll()); // Отправляем запрос с использованием НЕ именованных параметров $stmt = $db->doStatement(' SELECT * FROM contacts WHERE status = ? ', [ 1 ]); // Выбираем все записи с помощью генератора $generator = $db->fetchAll($stmt); foreach ($generator as $row) { print_r($row); } } catch (SQLiteDBException $exception) { printf('SQLiteDB exception (%u): %s', $exception->getCode(), $exception->getMessage()); }
在STDOUT中输出调试信息的示例
***** CONNECT "sqlite:my_database.sqlite"
***** [1] SELECT COUNT(*) AS count FROM contacts
***** [2] SELECT * FROM contacts WHERE status = 1 LIMIT 10
***** [3] SELECT * FROM contacts WHERE status = 1
***** DISCONNECT "sqlite:my_database.sqlite"
作者
© 2019-2023 andrey-tech
许可证
本库在MIT 许可证下发行。
