PHPackages                             manekshms/db2util - 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. manekshms/db2util

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

manekshms/db2util
=================

DB2 Database Utility and Query builder

1.0.0(7y ago)9142MITPHPPHP &gt;=5.4

Since Apr 16Pushed 7y ago6 watchersCompare

[ Source](https://github.com/manekshms/DB2Util)[ Packagist](https://packagist.org/packages/manekshms/db2util)[ RSS](/packages/manekshms-db2util/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

DB2Util
=======

[](#db2util)

[![Total Downloads](https://camo.githubusercontent.com/7e3adcc3345842e83de94bdba359b1d0add8412247a98625984a3532f9828fa9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d616e656b73686d732f6462327574696c2e737667)](https://packagist.org/packages/manekshms/db2util)[![Latest Stable Version](https://camo.githubusercontent.com/e5b7922727fbf21580cb5923307116cdc383a49ecd6252e4c5cfbe0a313d8497/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d616e656b73686d732f6462327574696c2e737667)](https://packagist.org/packages/manekshms/db2util)

Database utility and query builder for db2

Table of Contents
-----------------

[](#table-of-contents)

- [Requirements](#requirements)
- [Basic Usage](#basic-usage)
- [Configuration and Connection](#configuration-and-connection)
- [Select data](#select-data)
- [Insert data](#insert-data)
- [Update data](#update-data)
- [Delete data](#delete-data)
- [Get Last sql query](#get-last-sql-query)
- [Complex query](#for-complex-query)

Requirements
------------

[](#requirements)

- php &gt;= 5.4
- enable php extension [pdo\_ibm](https://www.ibm.com/support/knowledgecenter/no/SSEPGG_9.7.0/com.ibm.swg.im.dbclient.php.doc/doc/t0011926.html)

Installation
------------

[](#installation)

Install latest version with

```
composer require manekshms/db2util
```

Basic Usage
-----------

[](#basic-usage)

### Configuration and connection

[](#configuration-and-connection)

```
    $config = [];
    $config['dsn'] = 'ibm:dbname';
    $config['username'] = 'db2admin';
    $config['password'] = 'db2admin';
    $db2Util = new DB2Util\DB2Util($config);
    $db2Util->connect();
```

### Select data

[](#select-data)

#### Select all data from table

[](#select-all-data-from-table)

$db2Util-&gt;getQueryBuilder()-&gt;table('table\_name')-&gt;get();

#### Select data with where condition

[](#select-data-with-where-condition)

$db2Util-&gt;getQueryBuilder()-&gt;table('table\_name')-&gt;where('column-name' , 'column-value')-&gt;get(); Example:

```
$db2Util->getQueryBuilder()->table('table_name')->where('name' , 'bob')->get();
```

#### Select data with multiple column where condition

[](#select-data-with-multiple-column-where-condition)

$db2Util-&gt;getQueryBuilder()-&gt;table('table\_name')-&gt;where(\['column-name' =&gt; 'column-value'\])-&gt;get(); Example :

```
$db2Util->getQueryBuilder()->table('table_name')->where(['name' => 'bob', 'age' => 40])->get();
```

**Select with where conditions and operators**
$db2Util-&gt;getQueryBuilder()-&gt;table('table\_name')-&gt;where('column-name', 'operators', 'values')-&gt;get();
Example:

```
$db2Util->getQueryBuilder()->table('table_name')->where('AGE', '>=', 40)->get();
```

**Select with where conditions for multiple column check**
$db2Util-&gt;getQueryBuilder()-&gt;table('user')-&gt;where(\[ array of column name operator and value \])-&gt;get();

Example:

```
$db2Util->getQueryBuilder()->table('user')->where([ ['AGE', '>=', 40], ['NAME', '=', 'bob'] ])->get();
```

**OR**

```
$db2Util->getQueryBuilder()->table('user')->where([ ['AGE', '>=', 40], ['NAME', 'bob'] ])->get();
```

**Select with in operator**
$db2Util-&gt;getQueryBuilder()-&gt;table('user')-&gt;where('column-name', 'in', \[array of data\])-&gt;get();

Example:

```
$db2Util->getQueryBuilder()->table('user')->where('AGE', 'in', [40, 30])->get();
```

**Select With Limit**
$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;limit(number of records)-&gt;get(); Example:

```
$db2Util->getQueryBuilder()->table('user')->limit(3)->get();
```

**Select with Limit and Offset**
$db2Util-&gt;getQueryBuilder()-&gt;table('table naem')-&gt;limit(limit number)-&gt;offset( offset number)-&gt;get();
Example:

```
$db2Util->getQueryBuilder()->table('user')->limit(2)->offset(2)->get();
```

**Select with Like Operator**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;where('column', 'like', '%expected value%')-&gt;get();
Example:

```
$db2Util->getQueryBuilder()->table('user')->where('name', 'like', '%doe%')->get();
```

**Select with Join**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;join('JOIN TABLE NAME', 'table column ', '=', 'table column')-&gt;get();
Example:

```
    $db2Util->getQueryBuilder()
            ->table('user_PRODUCT AS USER_PRODUCT')
            ->select(['USER_PRODUCT.ID', 'USER.NAME', 'PRODUCT.PRODUCT_NAME', 'PRODUCT.PRICE'])
            ->join('user AS USER ', 'USER_PRODUCT.USER_ID', '=', 'USER.ID')
            ->join('PHPUNIT_TEST_PRODUCT AS PRODUCT', 'USER_PRODUCT.PRODUCT_ID', '=', 'PRODUCT.ID')
            ->get();
```

Generated Sql :

```
SELECT USER_PRODUCT.ID, USER.NAME, PRODUCT.PRODUCT_NAME, PRODUCT.PRICE FROM user_PRODUCT AS USER_PRODUCT INNER JOIN  user AS USER  ON ( USER_PRODUCT.USER_ID = USER.ID )  INNER JOIN  PHPUNIT_TEST_PRODUCT AS PRODUCT ON ( USER_PRODUCT.PRODUCT_ID = PRODUCT.ID )
```

**Other join Methods**

- leftJoin
- rightJoin
- outerJoin

**Select with nested where condition**

```
            $db2Util->getQueryBuilder()
                           ->table('table name')
                           ->where('column name', 'operator' 'value')
                           ->where(function($query){
                                $query->where('column name', 'operator', 'value')
                                    ->orWhere('column name', 'operator', 'value');
                             })
                           ->get()

```

Example :

```
    $db2Util->getQueryBuilder()
                    ->table('user')
                    ->where('AGE', '>=', 40)
                    ->where(function($query){
                        $query->where('EMAIL', 'like', 'm%')
                            ->orWhere('NAME', 'in', ['bob', 'boo']);
                        })
                    ->get()
```

Above Example Will generate SQL like

```
SELECT * FROM user WHERE AGE >= '40'  AND  ( EMAIL like 'm%'  OR NAME in (  'bob',  'boo' )  )
```

**Select with Union and unionAll**
$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;unionAll('query builder instance')-&gt;get();

Example :

```
    $firstQuery = $db2Util->getQueryBuilder()->table('user')->where('AGE','40');
    $unionResult = $db2Util->getQueryBuilder()->table('user')->where('NAME','like', 'b%')->unionAll($firstQuery)->get();
```

Above Example generate SQL like

```
( SELECT * FROM user WHERE NAME like 'b%'  )  UNION ALL (SELECT * FROM user WHERE AGE = '40'  )
```

**Select with groupby and having**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;select('select columns')-&gt;groupBy('column')-&gt;having('column|aggrigate functions', 'operator', value)-&gt;get();

Example :

```
$result = $db2Util->getQueryBuilder()->table('user')->select(["count(*) as cnt", "age"])->groupBy('age')->having('count(*)', '>', 1)->get();
```

Above example will generate sql like :

```
SELECT count(*) as cnt, age FROM user GROUP BY age HAVING count(*) >  '1'
```

#### Where Helper method

[](#where-helper-method)

**Where in**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;whereIn('column name', \['values'\])-&gt;get()

Example:

```
$db2Util->getQueryBuilder()->table('user')->whereIn('first_name', ['john', 'jack'])->get();
```

**Where not in**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;whereNotIn('column name', \['values'\])-&gt;get()

Example:

```
$db2Util->getQueryBuilder()->table('user')->whereNotIn('first_name', ['john', 'jack'])->get();
```

**Pluck**pluck a single column values to a collection $db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;pluck('column name');

Example:

```
$db2Util->getQueryBuilder()->table('name')->pluck('age');
```

**Count number of records in table**
$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;count();

Example:

```
$db2Util->getQueryBuilder()->table('table name')->count();
```

**Max value of column in table**
$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;max('column name');

Example:

```
$db2Util->getQueryBuilder()->table('table name')->max('age');
```

**Min value of column in table**$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;min('column name');

Example:

```
$db2Util->getQueryBuilder()->table('table name')->min('age');
```

### Insert data

[](#insert-data)

**Insert Single row**
$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;insert(data associative array);

Example:

```
$data =  [ 'NAME' => 'bob', 'AGE' => 40,'EMAIL' => 'bob@gmail.com', 'ADDRESS' =>  'bob address goes here'];
$db2Util->getQueryBuilder()->table('user')->insert($data);
```

**Insert Multiple row**$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;insert(two dimensional data associative array);
Example:

```
$data = [
['NAME' => 'mikee', 'AGE' => 54,'EMAIL' => 'mikee@gmail.com', 'ADDRESS' =>  'mikee address goes here'],
['NAME' => 'mark', 'AGE' => 64,'EMAIL' => 'mark@gmail.com', 'ADDRESS' =>  'mark address goes here'],
['NAME' => 'momo', 'AGE' => 34,'EMAIL' => 'momo@gmail.com', 'ADDRESS' =>  'momo address goes here']
];
$db2Util->getQueryBuilder()->table('user')->insert($data);
```

### Update data

[](#update-data)

**Update all records**
$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;update(\['column name' =&gt; 'new data'\]);

Example:

```
$db2Util->getQueryBuilder()->table('user')->update(['EMAIL' => 'new@gamil.com']);
```

**update with where conditions**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;where('column name', 'data')-&gt;update(\['column name' =&gt; 'new data'\]);
Example:

```
$db2Util->getQueryBuilder()->table('user')->where([['age', 40], ['NAME', 'bob']])->update(['EMAIL' => 'newemail@gamil.com']);
```

**incrementing value of column**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;increment('column name', increment cound default 1);

Example:

```
$db2Util->getQueryBuilder()->table('user')->where('ID', '1')->increment('age', 2);
```

**decrementing value of column**

$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;decrement('column name', decrement count default 1);

Example:

```
$db2Util->getQueryBuilder()->table('user')->where('ID', '1')->decrement('age');
```

### Delete data

[](#delete-data)

**Delete all data**$db2Util-&gt;getQueryBuilder()-&gt;table('table name')-&gt;delete();
Example:

```
$db2Util->getQueryBuilder()->table('user')->delete();
```

**Delete with where conditions**
$db2Util-&gt;getQueryBuilder()-&gt;table('user')-&gt;where('column name', 'operant', 'value')-&gt;delete();
Example:

```
$db2Util->getQueryBuilder()->table('user')->where('age', '!=', '40')->delete();
```

### Get Last sql query

[](#get-last-sql-query)

$db2Util-&gt;getConnection()-&gt;getLastSQLQuery(debug true or false) if debug is false output will be string

```
$db2Util->getConnection()->getLastSQLQuery(true);
```

if debug is true output will be associative array with query, params and processed query

```
array(3) {
  'query' => " SELECT * FROM user WHERE AGE = ?  ",
  'params' =>[
    40
  ],
  'processed_query' => " SELECT * FROM user WHERE AGE = '40'  "
}
```

### For complex query

[](#for-complex-query)

**Execute Query**

```
    $sql = " INSERT INTO USER (name, age, country) VALUES ( ?, ?, ? ) ";
    $params = [
        'bob',
        20,
        'India'
    ];
   $db2Util->getConnection()->executeQuery($sql, $params);
```

**Query**

```
   $sql = " SELECT * FROM USER WHERE ID = ? ";
   $params = [20];
   $stmt = $db2Util->getConnection()->query($sql, $params);
   $stmt->fetchAll();
```

Author
------

[](#author)

**[Maneksh M S](http://manekshms.com) - **

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 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

Unknown

Total

1

Last Release

2585d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/389a4479f3ddb14c60584ca9fb056a8871983e1a7b9e68fc475d9fc11b79e24a?d=identicon)[manekshms](/maintainers/manekshms)

---

Top Contributors

[![manekshms](https://avatars.githubusercontent.com/u/31417870?v=4)](https://github.com/manekshms "manekshms (16 commits)")

---

Tags

db2db2-php-utildb2-querybuilderphp-db2

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/manekshms-db2util/health.svg)

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

###  Alternatives

[doctrine/orm

Object-Relational-Mapper for PHP

10.2k285.3M6.2k](/packages/doctrine-orm)[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k115.1M102](/packages/jdorn-sql-formatter)[illuminate/database

The Illuminate Database package.

2.8k52.4M9.4k](/packages/illuminate-database)[mongodb/mongodb

MongoDB driver library

1.6k64.0M546](/packages/mongodb-mongodb)[ramsey/uuid-doctrine

Use ramsey/uuid as a Doctrine field type.

90340.3M211](/packages/ramsey-uuid-doctrine)[reliese/laravel

Reliese Components for Laravel Framework code generation.

1.7k3.4M16](/packages/reliese-laravel)

PHPackages © 2026

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