emmanix2002/database-adapter

此包已被放弃,不再维护。未建议替代包。

一个简单的包,用于抽象化使用PDO连接数据库并与之交互的过程

v0.0.3 2016-08-05 11:35 UTC

This package is auto-updated.

Last update: 2022-02-01 12:59:57 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

一个简单的包,用于抽象化使用 PDO 连接数据库并与之交互的过程。
所有代码均遵循PSR1和PSR2指南编写。

安装

通过Composer

$ composer require emmanix2002/database-adapter

用法

我们首先创建类的实例;它提供了一个 create() 实用方法,该方法接受一个作为数组的设置并填写所需的默认值。
可以通过调用 setDefault() 静态方法来更改默认值。

$config = ['host' => 'localhost', 'user' => 'user', 'password' => 'password', 'schema' => 'schema_name'];

$adapter = Emmanix2002\MySqlAdapter::create($config);
// OR
$adapter = new Emmanix2002\MySqlAdapter('host', 'schema_name', 'user', 'password');

$record = $adapter->selectOne('SELECT * FROM `Users` WHERE `user_id`=?', 21134);
var_dump($record);

用法:默认值

use Emmanix2002\MySqlAdapter;

MySqlAdapter::setDefault('host', 'default_hostname');
MySqlAdapter::setDefault('schema', 'default_schema');
MySqlAdapter::setDefault('user', 'default_user');
MySqlAdapter::setDefault('password', 'default_password');

$adapterDefault = MySqlAdapter::create();
// create an adapter using the defaults

$adapter = MySqlAdapter::create(['host' => 'another_hostname']);
// equivalent to new MySqlAdapter('another_hostname', 'default_schema', 'default_user', 'default_password');

用法:查询

有几个方法有助于查询,它们是

  • exec()
  • selectAll()
  • selectOne()

exec() 应直接调用所有不返回实际响应的查询,即除 SELECT 语句之外的所有查询。它由 select*() 方法调用,但使用它们进行 SELECTing 比调用 exec() 自己要容易得多。exec() 对传递给它的所有查询使用 prepared statements
以下是一些示例

$sql = 'SELECT * FROM `users` WHERE `user_email`=? AND `user_status`=?';
$record = $adapter->selectOne($sql, 'username@example.com', 1);

// it is also possible to do the same like so:
$args = ['username@example.com', 1];
$record = $adapter->selectOne($sql, ...$args);

// both will return the same value

exec() 总是返回一个值;根据传入的参数

  • true:如果查询成功执行且 $isSelect 参数设置为 FALSE,则返回
  • false:如果查询执行失败,则返回,无论 $isSelect 参数的值如何
  • array:如果查询成功且 $isSelect 参数设置为 TRUE,则返回。 select*() 方法始终将 $isSelect 设置为 TRUE

变更日志

请参阅CHANGELOG 以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅CONTRIBUTINGCONDUCT 以获取详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件emmanix2002@gmail.com而不是使用问题跟踪器。

致谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件