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 2w 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 57% 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

3203d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/12693452?v=4)[agjino](/maintainers/agjino)[@agjino](https://github.com/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

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k117.2M114](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8351.6M87](/packages/propel-propel1)[jfelder/oracledb

Oracle DB driver for Laravel

11518.4k](/packages/jfelder-oracledb)

PHPackages © 2026

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