Back to directory
catfan avatar

Medoo

The lightweight PHP database framework to accelerate the development.. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/catfan/Medoo.git

4,947

Stars

1,131

Forks

209

Watchers

MIT

License

ca62bc36 9ebd 11e6 8b37 7240d76319cd

Build Status Total Downloads Latest Stable Version License Backers on Open Collective Sponsors on Open Collective

The lightweight PHP database framework to accelerate development.

Documentation

Features

  • Lightweight - A lightweight single-file package that keeps dependencies to a minimum.

  • Easy - A clean, intuitive API that helps you get started quickly.

  • Powerful - Designed for complex SQL, data mapping, and prepared statements without sacrificing readability.

  • Compatible - Works smoothly with MySQL, MariaDB, PostgreSQL, SQLite, MSSQL, Oracle, Sybase, and more.

  • Friendly - Fits naturally into Laravel, CodeIgniter, Yii, Slim, and other PHP frameworks.

  • Free - Released under the MIT license and free to use in personal or commercial projects.

Requirements

  • PHP 7.3 or later
  • PDO extension enabled

Get Started

Install via composer

Add Medoo to the composer.json configuration file.

$ composer require catfan/medoo

Then update Composer

$ composer update
// Load Composer's autoloader.
require 'vendor/autoload.php';

// Import the Medoo namespace.
use Medoo\Medoo;

// Create a database connection.
$database = new Medoo([
    'type' => 'mysql',
    'host' => 'localhost',
    'database' => 'name',
    'username' => 'your_username',
    'password' => 'your_password'
]);

// Insert data.
$database->insert('account', [
    'user_name' => 'foo',
    'email' => '[email protected]'
]);

// Retrieve data.
$data = $database->select('account', [
    'user_name',
    'email'
], [
    'user_id' => 50
]);

echo json_encode($data);

// [{
//    "user_name" : "foo",
//    "email" : "[email protected]",
// }]

Contribution Guidelines

Before submitting a pull request, ensure compatibility with multiple database engines and include unit tests when possible.

Testing & Code Style

  • Run phpunit tests to execute unit tests.
  • Use php-cs-fixer fix to enforce code style consistency.

Commit Message Format

Each commit should begin with a tag indicating the type of change:

  • [fix] for bug fixes
  • [feature] for new features
  • [update] for improvements

Keep contributions simple and well-documented.

License

Medoo is released under the MIT License.

[More Products We Build]

Gear Browser - AI Extension Web Browser

Gear Browser

Releases

Aug 22, 2026

Medoo v2.6.0 - PHPStan Level 10

Download .zip

New Features

Added portable identity primary key syntax for create().

$database->create('account', [ '@id', 'email' => [ 'VARCHAR(255)', 'NOT NULL', 'UNIQUE' ] ])...

Jul 13, 2026

Medoo v2.5.0 - Compatibility

Download .zip

New Features

log() will output the SQL execution time #989.

$database->select('account', ['id', 'name'], [ 'name' => 'Alice' ]);

print_r($database->log());

// Array // ( // [0] => Array //...

May 14, 2026

Medoo v2.4.0 - Improve Performance

Download .zip

This release includes several performance improvements, particularly for select() and data mapping, and reduces memory consumption in some cases.

Improved dataMap, columnMap performance issue Improve...

Apr 21, 2026

Medoo v2.3.0

Download .zip

We’ve translated Medoo’s official website into 16 languages, refreshed the overall design, and added dark mode support. Please visit: https://medoo.in/ What’s Changed on v2.3.0

Updated test cases for...

Feb 3, 2026

Medoo v2.2.1

Download .zip

What's Changed

[update] Improve docBlock and doc code warning issues. [update] The PHP docBlock by @sobh in #1147 [fix] Prepared statement for ORDER BY FIELD #1150