catfan/medoo

The lightweight PHP database framework to accelerate development

Maintainers

👁 catfan

Package info

github.com/catfan/Medoo

Homepage

Type:framework

pkg:composer/catfan/medoo

Statistics

Installs: 1 545 861

Dependents: 264

Suggesters: 4

Stars: 4 942

Open Issues: 54

v2.4.0 2026-05-14 08:20 UTC

Requires

Requires (Dev)

Suggests

  • ext-pdo_dblib: For MSSQL or Sybase database on Linux/UNIX platform
  • ext-pdo_mysql: For MySQL or MariaDB database
  • ext-pdo_oci: For Oracle database
  • ext-pdo_pqsql: For PostgreSQL database
  • ext-pdo_sqlite: For SQLite database
  • ext-pdo_sqlsrv: For MSSQL database on both Window/Liunx platform

Provides

None

Conflicts

None

Replaces

None

MIT 467d100225ec3cb3082476f98193bb572015aff5

  • Angel Lai <angel.woop@medoo.in>

databasesqlmysqlsqlitepostgresqllightweightmssqloraclephp frameworkmariadbdatabase library


README

👁 Image

👁 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' => 'foo@bar.com'
]);

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

echo json_encode($data);

// [{
// "user_name" : "foo",
// "email" : "foo@bar.com",
// }]

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.

Links

[More Products We Build]

Gear Browser - AI Extension Web Browser

👁 Gear Browser