entraigas/slimdb

Slim Database,pdo的包装器

v1.2.3 2015-04-09 15:08 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:03:00 UTC


README

围绕PDO和PDO语句的轻量级数据库层。

该包的目标原本是轻量级且方便,提供基本的常用数据库功能(如选择、更新、插入和删除)。现在它更加雄心勃勃,不再那么轻量级和基本。注意:仅支持mysql和sqlite。

安装包

您可以直接从GitHub下载该包,或使用composer.json文件进行安装

{
	"require": {
		"entraigas/slimdb": "v1.2.1"
	}
}

数据库设置

配置是通过数组完成的。在这个例子中,有两个数据库设置

  • 第一个以'portal'作为连接名称,是一个mysql数据库。
  • 第二个以'admin'作为连接名称,是一个sqlite数据库。

最后,配置了一个名为'default'的连接,其值为'portal'。

//database configuration array
$portal => array(
	'driver' => 'mysql',
	'getPdo' => function(){
			//validate PDO extensions
			if (!defined('\PDO::ATTR_DRIVER_NAME')) return false; //PDO is not available
			if (!extension_loaded('pdo_mysql')) return false; //pdo_mysql extension not loaded
			//make connection
			$pdo = new \PDO("mysql:host=127.0.0.1;port=3306;dbname=testdb", 'user', 'password');
			//default connection settings
			$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
			$pdo->query("SET NAMES 'utf8'");
			//done, return pdo object
			return $pdo;
		}
);
$admin => array(
	'driver' => 'sqlite',
	'getPdo' => function(){
			//validate PDO extensions
			if (!defined('\PDO::ATTR_DRIVER_NAME')) return false; //PDO is not available
			if (!extension_loaded('pdo_sqlite')) return false; //pdo_sqlite extension not loaded
			//make connection
			$pdo = new \PDO("sqlite:/path/to/database.db");
			//default connection settings
			$pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
			//done, return pdo object
			return $pdo;
		}
);


//initialize SlimDb
\SlimDb\SlimDb::configure('portal', $portal);
\SlimDb\SlimDb::configure('admin', $admin);

//set the default connection
\SlimDb\SlimDb::setDefaultConnection('portal');

该包附带了许多类。根据您要做什么,您应该使用一个而不是另一个。以下是一个列表