tigron / skeleton-database
Tigron 骨架 MySQL 数据库层
v0.3.12
2024-02-05 15:42 UTC
Requires
- ext-mysqli: *
This package is auto-updated.
Last update: 2024-09-05 17:04:24 UTC
README
描述
这个库是一个带有易于使用的 API 的 Mysqli 包装器。大多数基本功能都自动处理。
安装
通过 composer 安装
composer require tigron/skeleton-database
如何操作
创建数据库连接
$dsn1 = 'mysqli://username:password@localhost/database';
$dsn2 = 'mysqli://username:password@localhost/database2';
$db = \Skeleton\Database\Database::Get($dsn1, true); // The second parameter makes this dsn default
$db = \Skeleton\Database\Database::Get(); // returns a connection to dsn1 as this is default
$db = \Skeleton\Database\Database::Get($dsn2); // returns a connection to dsn2, don't make it default
$db = \Skeleton\Database\Database::Get(); // returns a connection to dsn1
获取结果集的一行。结果集应只包含一行
$result = $db->get_row('SELECT * FROM user WHERE id=?', [ 1 ]); // Returns one row
获取一列,数组中的每个元素都包含行的值。结果应只包含一行
$result = $db->get_column('SELECT id FROM user', []); // Returns 1 column
获取一个字段的结果。
$result = $db->get_one('SELECT username FROM user WHERE id=?', [ 1 ]); // Returns 1 field
获取给定表的所有列
$result = $db->get_columns('user');
向表中插入数据
$data = [
'username' => 'testuser',
'firstname' => 'test',
];
$result = $db->insert('user', $data); // Inserts a new row
更新一行
$data = [
'username' => 'testuser',
'firstname' => 'test',
];
$where = 'id=' . $db->quote(1);
$result = $db->update('user', $data, $where); // Updates a row
手动运行查询
$result = $db->query('DELETE FROM `user` WHERE id=?', [ $user_id ]);
清除所有现有的数据库连接
Database::Reset();
用于调试目的,可以将标志设置为查看查询
\Skeleton\Database\Config::$query_log = false; // (default = false)
\Skeleton\Database\Config::$query_counter = true; // (default = true)
$database = \Skeleton\Database\Database::get();
print_r($database->query_log);
print_r($database->query_counter);
数据质量保证 // 如果内容长度超过表字段,则修剪数据 \Skeleton\Database\Config::$auto_trim = false; // (默认 = false)
// Remove from objects properties which don't exist as table columns
\Skeleton\Database\Config::$auto_discard = false; // (default = false)
// Set to null every column which is not given as input and supports NULL values
\Skeleton\Database\Config::$auto_null = false; // (default = false)