PHP简单的数据操作类,继承自Medoo,进行了必要的优化
优势
-
轻 - 只有几十kb大小
-
容易 - 非常容易使用
-
功能强大 - 支持各种常见和复杂的SQL查询、数据映射和防止SQL注入
-
兼容 - 兼容MySQL、MSSQL、SQLite、MariaDB、Sybase、Oracle、PostgreSQL甚至更多
-
集成 - 可以集成到任何PHP中, 包括 Laravel, Codeigniter, Yii, Slim 及一些自己写到框架或者面向过程脚本
要求
PHP 5.4+ 和PDO扩展
开始使用
我们需要安装好 composer
添加PDOGO到 composer.json 文件中去
$ composer require ric/PdoGo
执行 composer update 更新
$ composer update
// 在你项目的入口处添加自动引用
require 'vendor/autoload.php';
// 设置你的配置文件
$config = [
'PdoGo' => [
'database_type' => 'mysql',
'database_name' => '数据库名称',
'server' => '数据库链接地址',
'username' => '数据库账号',
'password' => '数据库密码',
'charset' => 'utf8',
'port' => 3306, // 可选参数
'prefix' => '',// 可选,定义表的前缀
'option' => [ // 连接参数扩展, 更多参考 http://www.php.net/manual/en/pdo.setattribute.php
//PDO::ATTR_CASE => PDO::CASE_NATURAL
]
],
]
//编写你的类
class MDB {
/**
* 实例数组
*
* @var array
*/
static public $instance = [];
static public $_instance = null;
/**
* 获取实例
*
* @param string $config_name
* @return DbConnection
* @throws Exception
*/
static public function instance($dbname) {
if (!$config[$dbname]) {
throw new Exception('找不到数据库: '.$dbname);
}
if (empty(self::$instance[$dbname])) {
self::$instance[$dbname] = new \Ric\PdoGo($config[$dbname]);
}
return self::$instance[$dbname];
}
}
// 例子
$database->insert('account', [
'user_name' => 'foo',
'email' => 'foo@bar.com'
]);
$data = $database->select('account', [
'user_name',
'email'
], [
'user_id' => 50
]);
echo json_encode($data);
// [
// {
// "user_name" : "foo",
// "email" : "foo@bar.com",
// }
// ]
说明
该类诞生的目的在于目前手中的一个Discuz项目,需要进行源码改造使用,大概的使用手册可以参考Medoo数据操作类
该类在Discuz中可以配合phpdebug使用,输出mysql的查询时间,在其它中无效,或者需要改造配置文件可以生效
该类去除了sql的双引号限制,在Medoo中带双引号的sql会被转义而导致不生效果