restful-template/sql-manager

PHP 数据库管理库。

0.0.1 2020-11-05 12:06 UTC

This package is auto-updated.

Last update: 2024-09-05 21:54:45 UTC


README

PHP 数据库管理库。

目录

支持

如果您需要帮助,可以打开一个问题,或者通过电子邮件(contato@enriquerene.com.br)联系我们。

安装

有一些安装方式。您可以选择最适合您的安装方式。

Composer(推荐)

这种方式需要 Composer

$ composer require restful-template/sql-manager

Git

将仓库克隆到您的项目中

$ git clone https://github.com/enriquerene/sql-manager.git

ZIP

下载包并将其解压到您的项目中: 下载 ZIP

用法

在此,我们介绍了如何正确使用 SQLManager 库。以下示例中,SQLManager 实例通过关联数组接收数据库连接信息和模式

<?php
$dbInfo = [
	"host" => "localhost",
	"name" => "database_name",
	"charset" => "utf8",
	"user" => "database_user",
	"password" => "database_password",
	"prefix" => "db_",
	"tables" => [
		"cars" => [
			"prefix" => "car_",
			"primary" => "id",
			"unique" => [ "name" ],
			"fields" => [
				"id" => "int(11)",
				"model" => "varchar(30)",
				"brand" => "varchar(30)",
				"year" => "char(4)"
			]
		]
	]
];

请注意,$dbInfo[ "prefix" ] 是该数据库中的表前缀,而 $dbInfo[ "tables" ][ "cars" ][ "prefix" ] 是 cars 表中的列前缀。在上面的示例中,我们有一个名为 database_name 的数据库,通过用户 database_user 使用 database_password 作为密码进行访问。在此示例模式中,有一个名为 db_cars 的表,该表有 car_idcar_modelcar_brandcar_year 列。$dbInfo[ "tables" ][ "cars" ][ "fields" ] 是一个关联数组,其中键是列名(不带前缀),值是列类型。

从数据库读取

对于读取数据,有 SQLManager::select 方法

<?php
use RESTfulTemplate\SQLManager as SMan;

$db = new SMan( $dbInfo );
$tableName = "cars";
$data = $db->select( $tableName );
// $data contains an array of database result rows

SQLManager::select 接受两个可选参数

<?php
use RESTfulTemplate\SQLManager as SMan;

$db = new SMan( $dbInfo );
$tableName = "cars";
$data = $db->select( $tableName, [ "id, year" ] );
// $data contains the two requested columns (id and year) for each row in cars table

$data = $db->select( $tableName, [], [ "year" => "2010" ] );
// $data contains rows from cars table where column year has value 2010

向数据库插入

要向数据库中插入数据,我们可以使用 SQLManager::insert 方法

<?php
use RESTfulTemplate\SQLManager as SMan;

$body = [
	"model" => "new model",
	"brand" => "some brand",
	"year" => "2020"
];

$db = new SMan( $dbInfo );
$tableName = "cars";
$result = $db->insert( $tableName, $body );
// $result is true if everything ok and false if some error happens.

可以使用 SQLManager::update 方法更新数据库中的现有行

<?php
use RESTfulTemplate\SQLManager as SMan;

$body = [
	"model" => "correct model",
];
$where = [ "id" => 1 ];

$db = new SMan( $dbInfo );
$tableName = "cars";
$result = $db->update( $tableName, $body, $where );
// $result is true if everything ok and false if some error happens.

从数据库删除

使用 SQLManager::delete 方法从数据库中删除数据

<?php
use RESTfulTemplate\SQLManager as SMan;

$db = new SMan( $dbInfo );
$tableName = "cars";
$where = [ "id" => 1 ];
$result = $db->delete( $tableName, $where );
// $result is true if everything ok and false if some error happens.

警告!!! 注意,SQLManager::updateSQLManager::delete 中的 $where 参数是可选的。如果没有提供,这些方法将在整个表中执行。

计划

目前仅支持 MySQL。未来的版本还将支持 SQLite 和 PostgreSQL。

贡献

发起拉取请求或发送电子邮件至支持。