thephpleague / database
PHP library and ORM to handle DB connection, apply C.R.U.D. operations
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-11-10 05:45:51 UTC
README
PHP library and ORM to handle DB connection, apply C.R.U.D. operations.
Install
Via Composer
$ composer require thephpleague/database
Usage
$config = [ 'host' => 'localhost', 'port' => 3306, 'database' => 'master_db', 'username' => 'root', 'password' => '', ]; $connection = new League\Database\ConnectionManager('core', $config);
BulkSql
usage
Bulk SQL classes could be useful in scripts, when you need to insert big amount of records.
Example 1:
`BulkInsert` usage
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(); }
Example 2:
`BulkReplace` and `BulkDelete` usage (could be useful with feeds)
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(); }
Change log
Please see CHANGELOG for more information on what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CODE_OF_CONDUCT for details.
Security
If you discover any security related issues, please email sergey.podgornyy@yahoo.de instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.