thephpleague / database
PHP 库和 ORM,用于处理数据库连接,执行 C.R.U.D. 操作
v1.1.2
2017-12-12 17:32 UTC
Requires
- php: ~7.0
- ext-pdo: *
- larapulse/support: ^1.0
Requires (Dev)
- phpunit/phpunit: ~6.3
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-09-29 05:01:36 UTC
README
PHP 库和 ORM,用于处理数据库连接,执行 C.R.U.D. 操作。
安装
通过 Composer
$ composer require thephpleague/database
用法
$config = [ 'host' => 'localhost', 'port' => 3306, 'database' => 'master_db', 'username' => 'root', 'password' => '', ]; $connection = new League\Database\ConnectionManager('core', $config);
BulkSql 用法
在脚本中,当需要插入大量记录时,批量 SQL 类可能会有用。
示例 1
`BulkInsert` 用法
use League\Database\BulkSql\BulkInsert; $db = $connection->getMasterConnection(); $bulkInsert = new BulkInsert($db, 'users'); $bulkInsert ->setItemsPerQuery(50) ->useIgnore() ->disableIndexes(); try { $db->beginTransaction(); foreach ($users as $user) { $bulkInsert->add($user); } $bulkInsert->finish(); $affectedCount = $bulkInsert->getAffectedCount(); $db->commit(); } catch (\PDOException $e) { $db->rollBack(); }
示例 2
`BulkReplace` 和 `BulkDelete` 用法(与数据源一起使用可能很有用)
use League\Database\BulkSql\BulkReplace; use League\Database\BulkSql\BulkDelete; $db = $connection->getMasterConnection(); $bulkReplace = new BulkReplace($db, 'offers'); $bulkReplace->setItemsPerQuery(500); $bulkDelete = new BulkDelete($db, 'offers'); $bulkDelete->setItemsPerQuery(1000); try { $db->beginTransaction(); foreach ($offers as $offer) { $flag = $offer['deltaStatus'] ?? null; switch ($delta) { case 'REMOVE': $bulkDelete->add(['id' => $data['id']]); break; case 'ADD': $bulkReplace->add($data); break; default: $logger->notice("Unsupported delta flag \"{$flag}\""; } } $bulkReplace->finish(); $bulkDelete->finish(); $db->commit(); $insertsCount = $bulkReplace->getInsertedCount(); $updatesCount = $bulkReplace->getReplacedCount(); $deletesCount = $bulkDelete->getAffectedCount(); } catch (\PDOException $e) { $db->rollBack(); }
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 和 CODE_OF_CONDUCT 了解详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 sergey.podgornyy@yahoo.de 联系,而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。