tigron/skeleton-database

Tigron 骨架 MySQL 数据库层

v0.3.12 2024-02-05 15:42 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)