A small mysql library.
composer require m/db
$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
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