m/db

1.0.11 2023-08-02 13:28 UTC

This package is not auto-updated.

Last update: 2024-03-27 16:23:18 UTC


README

A small mysql library.

Installation

composer require m/db

Usage

$db = \m\Db::open([
    "host" => "db01.internal",
    "user" => "app",
    "pass" => "secret",
    "db"   => "shop",
]);

$query = "SELECT * FROM cart WHERE user_id = :user_id";
$params = [
    "user_id" => 123,
];
$rows = $db->read($query, $params);
// returns array of associative arrays

$query = "UPDATE cart SET updated = NOW() WHERE id = :id";
$params = [
    "id" => 456,
];
$affected = $db->write($query, $params);
// returns number of affected rows

API

interface DbInterface
{
    public static function open($config);

    public function config($key = null, $value = null);
    public function read($query, array $params = []);
    public function write($query, array $params = []);
}

The config can be parsed from a URL and changed at will:

use \m\Db;

$db = Db::open("mysql://username:password@host/db");
$db = Db::open($_ENV["DATABASE_URL"]);

$currHost = $db->config("host");                   // get current config value
$oldValue = $db->config("host", "db02.internal");  // change one item, returns old value
$config   = $db->config();                         // get all config values

Status

Travis Status Latest Stable Version Total Downloads Coverage Status