PHPackages                             thephpleague/database - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. thephpleague/database

ActiveLibrary[Database &amp; ORM](/categories/database)

thephpleague/database
=====================

PHP library and ORM to handle DB connection, apply C.R.U.D. operations

v1.1.2(8y ago)223[1 PRs](https://github.com/larapulse/database/pulls)MITPHPPHP ~7.0

Since Sep 30Pushed 8y ago1 watchersCompare

[ Source](https://github.com/larapulse/database)[ Packagist](https://packagist.org/packages/thephpleague/database)[ Docs](https://github.com/thephpleague/database)[ RSS](/packages/thephpleague-database/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (4)Dependencies (3)Versions (6)Used By (0)

Database
========

[](#database)

[![Latest Version on Packagist](https://camo.githubusercontent.com/7b64ca3d84261d9a4d99633fab91686830662a41cdcb90d85f5591aeb63c1504/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f7468657068706c65616775652f64617461626173652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/thephpleague/database)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)[![Build Status](https://camo.githubusercontent.com/597195400e7243b1e4f4c9bcca6a8509f45cf5f00231b0ac645150cab01a8595/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f6c61726170756c73652f64617461626173652f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/larapulse/database)[![Coverage Status](https://camo.githubusercontent.com/3674216292307ac00bba95f7f504fdd05e4e6fe1f39bfb4354ab993cc361aa09/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f636f7665726167652f672f6c61726170756c73652f64617461626173652e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/larapulse/database/code-structure)[![Quality Score](https://camo.githubusercontent.com/e5a08b1628b5e1a91099718b384ba4d9daf0fea93d8ef9f17c4f06bfa4ba09b9/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f6c61726170756c73652f64617461626173652e7376673f7374796c653d666c61742d737175617265)](https://scrutinizer-ci.com/g/larapulse/database)

PHP library and ORM to handle DB connection, apply C.R.U.D. operations.

Install
-------

[](#install)

Via Composer

```
$ composer require thephpleague/database
```

Usage
-----

[](#usage)

```
$config = [
    'host'      => 'localhost',
    'port'      => 3306,
    'database'  => 'master_db',
    'username'  => 'root',
    'password'  => '',
];

$connection = new League\Database\ConnectionManager('core', $config);
```

### `BulkSql` usage

[](#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
----------

[](#change-log)

Please see [CHANGELOG](docs/CHANGELOG.md) for more information on what has changed recently.

Testing
-------

[](#testing)

```
$ composer test
```

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](docs/CONTRIBUTING.md) and [CODE\_OF\_CONDUCT](docs/CODE_OF_CONDUCT.md) for details.

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

Credits
-------

[](#credits)

- [Sergey Podgornyy](https://github.com/SergeyPodgornyy)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~24 days

Total

4

Last Release

3076d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/64a637b1e5277fee4c9571b27c631a7c212d44a4ccd23b95e5c1d807220707cd?d=identicon)[SergeyPodgornyy](/maintainers/SergeyPodgornyy)

---

Top Contributors

[![SergeyPodgornyy](https://avatars.githubusercontent.com/u/13667212?v=4)](https://github.com/SergeyPodgornyy "SergeyPodgornyy (3 commits)")

---

Tags

databasemysqlmysql-databaseormorm-libraryorm-php-frameworkpdopdo-mysqlpdo-phppdo-wrapperpostgrespostgresqldatabasemysqlpostgresthephpleague

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/thephpleague-database/health.svg)

```
[![Health](https://phpackages.com/badges/thephpleague-database/health.svg)](https://phpackages.com/packages/thephpleague-database)
```

###  Alternatives

[scienta/doctrine-json-functions

A set of extensions to Doctrine that add support for json query functions.

58523.9M36](/packages/scienta-doctrine-json-functions)[aura/sqlquery

Object-oriented query builders for MySQL, Postgres, SQLite, and SQLServer; can be used with any database connection library.

4572.9M34](/packages/aura-sqlquery)[nettrine/dbal

Doctrine DBAL for Nette Framework

322.6M19](/packages/nettrine-dbal)[aura/sqlschema

Provides facilities to read table names and table columns from a database using PDO.

41234.1k4](/packages/aura-sqlschema)[chillerlan/php-database

An extensible database wrapper and query builder.

431.2k2](/packages/chillerlan-php-database)[jrsaunders/shard-matrix

A Complete Database Sharding system for MYSQL and/or Postgres. Using Laravels Query Builder easily scale up your application. Configure your whole solution in one Yaml Config file.

271.5k](/packages/jrsaunders-shard-matrix)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
