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 许可证下发行。