alexsasharegan / database
PHP mysqli 工具,用于正确处理错误、连接,并使获取数据更简单、更DRY。
2.0.0
2017-04-02 14:46 UTC
Requires
- php: >=5.3.0
README
PHP MySQL 工具,用于正确处理错误、连接,并使获取数据更简单、更DRY。
安装
使用 Composer
composer require alexsasharegan/database
然后在供应商自动加载器中要求
<?php require_once 'path/to/vendor/autoload.php';
使用方法
静态方法
调用 Database::connect( [ string $configFile = './database.json', array $options = [] ] )
而不带任何参数将会在调用文件目录中查找名为 database.json
的配置文件。为了使用此默认行为,请将您的 database.json
放置在您的 PHP 文件旁边。如果您的配置文件位于其他位置,请将路径作为第一个参数传入。
项目包含一个示例配置文件。只需将名称从 database.example.json
更改为 database.json
,并将其移动到您的调用 PHP 文件旁边。以下是示例配置
<?php // library defaults $connectionOptions = [ 'DB_HOST' => '127.0.0.1', 'DB_NAME' => 'test', 'DB_PORT' => '3306', 'DB_CHARSET' => 'utf8', 'DB_USERNAME' => 'admin', 'DB_PASSWORD' => 'admin', ]; // library defaults $pdoOptions = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => FALSE, PDO::ATTR_STRINGIFY_FETCHES => FALSE, ]; $mySQL = new \Database\MySQL($connectionOptions, $pdoOptions);
其他一些静态方法
<?php use Database\MySQL; # Takes a MySQL-formatted date string and returns a string file path MySQL::SQLDateToPath( string $SQLDate ); # example echo MySQL::SQLDateToPath( '2016-09-06 14:02:26' ); # Outputs: '2016/09/06' # Returns a MySQL-formatted timestamp echo MySQL::now(); # Outputs: '2016-09-06 14:04:15';
实例方法
查询
<?php $mySQL = new \Database\MySQL($connectionOptions, $pdoOptions); # use a try/catch block to handle a bad query try { $mySQL->select(['firstName', 'lastName']) ->from('users') ->where('id', 'in', [1,2,3]) # we can chain methods together here ->map( # this can be any callable type ( will be called with each row ) # closures let us 'use' vars from parent scope # be wary of when you need to pass by reference using & function ( array $resultRow ) { $users[] = new User($resultRow); # the $resultRow is an associative array } ); } catch ( Exception $e ) { # insert some custom error handling here exit( $e ); }