PHPackages                             agjino/php-mysql-layer - 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. agjino/php-mysql-layer

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

agjino/php-mysql-layer
======================

Simple PHP class for doing standard MySQL actions.

1.1.0(8y ago)130MITPHP

Since Jan 4Pushed 7y ago1 watchersCompare

[ Source](https://github.com/agjino/php-mysql-layer)[ Packagist](https://packagist.org/packages/agjino/php-mysql-layer)[ RSS](/packages/agjino-php-mysql-layer/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (1)DependenciesVersions (3)Used By (0)

Database.php
============

[](#databasephp)

Database.php is a simple PHP class for doing standard MySQL actions, such as selecting, inserting, updating and deleting database rows. It also includes some nice functionality, like auto-escaping to protect your database from malicious code and automatic serializing of arrays.

Usage
-----

[](#usage)

### Initiating

[](#initiating)

**Initiate a database connection using by creating a `new Database()` object.**

```
require_once('Database.php');

$db = new Database($database_name, $username, $password, $host); // $host is optional and defaults to 'localhost'

```

### Select

[](#select)

**Select rows from a database table**

Usage:

```
$db->select($table, $where, $limit, $order, $where_mode, $select_fields)

```

Arguments:

- string `$table` - name of the table to select from
- array/string `$where` - array or string holding the filters/'WHERE' clause for the query
- int/string `$limit` - integer or string holding the 'LIMIT' clause
- string `$order` - string holding the 'ORDER BY' clause
- string `$where_mode` - whether to add an 'AND' or 'OR' after each item in the `$where` array, defaults to `AND`
- string `$select_fields` - the fields to select (SELECT &lt;$select\_fields&gt; FROM ...), defaults to `*`

Example:

```
// get the first 10 candy bars that are sweet, and order them by amount
$db->select('candy', array('sweet' => 1, 'spicy' => 0), 10, 'amount DESC');

```

```
// get the ids 1, 2,5,9  from products
$db->select('products', array('id' => 'in (1,2,5,9)'), false, false,'OR');

```

#### Reading results

[](#reading-results)

Reading the results can be done with the following functions:

- `$db->count()` returns the number of selected rows, equal to `mysql_num_rows()`
- `$db->row()` returns the first row that matches the query as an array
- `$db->result()` returns all matches rows as an array containing row objects
- `$db->result_array()` returns all matches rows as an array containing row arrays
- `$db->row_array()` returns the first row that matches the query as an object (stdClass)

Please note that you can call any of these functions also directly after the `$db->select()` call, like shown below:

```
echo $db->select('candy', array('sweet' => 1), 10)->count();

```

There are a few other methods available for queries that might come in handy:

- `$db->sql()` returns the sql query that was last executed

### Insert

[](#insert)

**Insert data into a database table**

Usage:

```
$db->insert($table, $fields=array())

```

Example:

```
$db->insert(
	'candy',
	array(
		'name' => 'Kitkat original',
		'sweet' => 1,
		'spicey' => 0,
		'brand' => 'Kitkat',
		'amount_per_pack' => 4
	)
);

```

**Tip!** You can call `$db->id()` immeadiately after a `$db->insert()` call to get the ID of the last inserted row.

### Update

[](#update)

**Update one or more rows of a database table**

Usage:

```
$db->update($table, $fields=array(), $where=array())

```

If you need to set a value based on a formula, ex. {previousValue} + 1, end the field name with an exclamation mark (!), ex: 'amount!' =&gt; 'amount - 100'

Example:

```
// Move an employee to another department and update their positions count
$db->update(
	'employees',
	array( // fields to be updated
		'department' => 'IT',
		'positions!' => 'positions + 1' //Note the exclamation mark (!) at the end
	),
	array( // 'WHERE' clause
		'id' => '815'
	)
);

```

### Delete

[](#delete)

**Remove one or more rows from a database table**

Usage:

```
$db->delete($table, $where=array())

```

Example:

```
// delete all Kitkat candy
$db->delete(
	'candy',
	array( // 'WHERE' clause
		'brand' => 'Kitkat'
	)
);

```

### Singleton

[](#singleton)

**Access the database instance outside the global scope after initializing it**

Usage:

```
$my_db = Database::instance();

```

Example:

```
// Global scope
$db = new Database($database_name, $username, $password, $host);

// Function scope
function something(){
    // We could simply use `global $db;`, but using globals is bad. Instead we can do this:
    $db = Database::instance();

    // And now we have access to $db inside the function
}

```

###  Health Score

29

—

LowBetter than 59% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 52.6% 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 ~261 days

Total

2

Last Release

3156d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2911d1dbf1cfcfe3d1900fdf9da3a1e54e70c51f8a39519e13cdeca3c94fdd59?d=identicon)[agjino](/maintainers/agjino)

---

Top Contributors

[![tschoffelen](https://avatars.githubusercontent.com/u/666220?v=4)](https://github.com/tschoffelen "tschoffelen (10 commits)")[![agjino](https://avatars.githubusercontent.com/u/12693452?v=4)](https://github.com/agjino "agjino (6 commits)")[![craiem](https://avatars.githubusercontent.com/u/3052948?v=4)](https://github.com/craiem "craiem (2 commits)")[![nydacatapang](https://avatars.githubusercontent.com/u/20010803?v=4)](https://github.com/nydacatapang "nydacatapang (1 commits)")

### Embed Badge

![Health badge](/badges/agjino-php-mysql-layer/health.svg)

```
[![Health](https://phpackages.com/badges/agjino-php-mysql-layer/health.svg)](https://phpackages.com/packages/agjino-php-mysql-layer)
```

###  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)
