davidfricker/dataabstracter

极简数据抽象和伪内容提供者框架

3 2017-04-20 09:12 UTC

This package is not auto-updated.

Last update: 2024-09-17 04:08:15 UTC


README

此包是PDO DBMS驱动程序的一个包装器。它可以通过一个函数调用轻松参数化查询,此外它还暴露CRUD操作。

安装

使用composer composer require DavidFricker/DataAbstracter

使用方法

use DavidFricker\DataAbstracter\Adapter\MySQLDatabaseWrapper ;

$MySQLDatabaseWrapper = new MySQLDatabaseWrapper($dsn, $username, $password);

API

delete()

删除一行或多行。由于这个函数旨在作为一个简单的辅助函数,所以只使用'AND'作为where子句的粘合剂。更复杂的删除语句应使用run()执行。

示例

$where = ['col_name' => 'expected_value'];
$limit = 10;
$MySQLDatabaseWrapper->delete('table_name', $where, $limit);

update()

更新一行或多行。这个函数旨在作为一个简单的辅助函数,只使用'AND'作为where子句的粘合剂。更复杂的更新语句应使用run()执行。

示例

$data = ['col_name' => 'new_value'];
$where = ['col_name' => 'expected_value'];
$limit = 10;
$MySQLDatabaseWrapper->update('table_name', $data, $where, $limit);

fetch()

获取一行或多行。由于这个函数旨在作为一个简单的辅助函数,所以只使用'AND'作为where子句的粘合剂。更复杂的更新语句应使用run()执行。重要:确保$columns变量不包含用户输入,因为它会原样插入到语句中,因此可能创建SQL注入漏洞。

示例

$columns = ['col_name_1', 'col_name_2'];
$where = ['col_name' => 'expected_value'];
$limit = 10;
$MySQLDatabaseWrapper->fetch('table_name', $columns, $where, $limit);

insert()

创建新行。

示例

$data = ['col_name_1' => 'new_value', 'col_name_2' => 'new_value'];
$MySQLDatabaseWrapper->insert('table_name', $data);

run()

执行任何SQL查询。为确保查询免受SQL注入攻击,请通过$bind数组传递所有值。

示例

$new_record = ['col_name_1' => 'new_value', 'col_name_2' => 'new_value'];
$MySQLDatabaseWrapper->insert('table_name', $new_record);

rowCount()

获取上次执行的查询返回的行数。

示例

$new_record = ['col_name_1' => 'new_value', 'col_name_2' => 'new_value'];
$MySQLDatabaseWrapper->insert('table_name', $new_record);

错误

请通过创建问题并提供复现问题的代码来报告错误。代码贡献总是受欢迎的。

许可证

在MIT许可证下发布。