文档章节

Merrdb

metian
 metian
发布于 2016/11/17 11:16
字数 525
阅读 9
收藏 0

Merrdb

一个简单、快速的Mysql数据库操作类库。 Gtihub连接

安装

composer require mejinke/merrdb dev-master

快速入门

require __DIR__.'/../vendor/autoload.php';

//创建一个连接
$conn = new \Merrdb\Connection([
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => '123456'
]);

//实例化Merrdb,同时传递连接
$mdb = new \Merrdb\Merrdb([$conn]);

//设置接下来要操作的表以及表的主键(如果不使用get方法可以不设置主键)
$mdb->table('user')->id('user_id');

//开启debug ,将会输出SQL
$mdb->debug();

//查询全表
$rows = $mdb->select();
print_r($rows);


$mdb->debug();
//查询主键值为1的数据
$row = $mdb->get(1);

条件表达式

通过在条件字段尾部添加英文逗号,来注明要使用的表达式,默认为等于。 包括 =!>>=<<=<>><

//等于 > SELECT * FROM user WHERE (`name` = '张三')
$mdb->select([
    "name" => "张三"
]);

//不等于 > SELECT * FROM user WHERE (`name` != '张三')
$mdb->select([
    "name,!" => "张三"
]);
//大于 > SELECT * FROM `user` WHERE (`user_id` > '1')
$mdb->select([
    "user_id,>" => 1
]);

//IN > SELECT * FROM user WHERE (`name` IN('张三', '李四', '王五'))
$mdb->select([
    "name" => ["张三", "李四", "王五"]
]);

//NOT IN > SELECT * FROM user WHERE (`name` NOT IN('张三', '李四', '王五'))
$mdb->select([
    "name,!" => ["张三", "李四", "王五"]
]);

//BETWEEN > SELECT * FROM user WHERE (`user_id` BETWEEN '1' AND '10' )
$mdb->select([
    "user_id,<>" => [1, 10] 
]);
//SELECT * FROM `user` WHERE (`user_id` BETWEEN '1' AND '1' )
$mdb->select([
    "user_id,<>" => 10 
]);

//NOT BETWEEN > SELECT * FROM user WHERE (`id` NOT BETWEEN '1' AND '10') 
$mdb->select([
    "user_id,><" => [1, 10] 
]);

事务


$mdb->action(function($mdb){
    $mdb->update(['name' => 'tian'], ['id' => 1]);
    //...
    return true;
})
//当匿名函数返回false时该函数类所有的数据库操作将会回滚,如果没有返回或返回不为false时则全部提交

手动切换连接

Merrdb允许用户手动切换到不同的连接源,通过setDispatchConnDelegate 方法来设置,该方法需要一个Closure 做为参数,该参数返回一个连接的id名

//创建一个连接
$conn = new \Merrdb\Connection([
    'id' => 's1', //该连接的id名,唯一
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => '123456'
]);
//创建另一个连接
$conn2 = new \Merrdb\Connection([
    'id' => 's2', //该连接的id名,唯一
    'host' => 'localhost',
    'database' => 'test',
    'username' => 'root',
    'password' => '123456',
    'charset' => 'utf8'
]);

$mdb = new \Merrdb\Merrdb([$conn, $conn2]);
$mdb->table('user')->id('user_id');

//设置连接分配委托
$mdb->setDispatchConnDelegate(function(){
    return 's2';
});

$mdb->debug();

$row = $mdb->get(1);

print_r($row);

© 著作权归作者所有

共有 人打赏支持
metian
粉丝 26
博文 35
码字总数 5073
作品 0
南京
高级程序员
私信 提问

暂无文章

Nextjs+React非页面组件SSR渲染

@随风溜达的向日葵 Nextjs Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)...

随风溜达的向日葵
58分钟前
0
0
如何在 Linux 系统查询机器最近重启时间

在你的 Linux 或类 UNIX 系统中,你是如何查询系统上次重新启动的日期和时间?怎样显示系统关机的日期和时间? last 命令不仅可以按照时间从近到远的顺序列出该会话的特定用户、终端和主机名...

来来来来来
今天
3
0
Redis协议是什么样的

前言 我们用过很多redis的客户端,有没有相过自己撸一个redis客户端? 其实很简单,基于socket,监听6379端口,解析数据就可以了。 redis协议 解析数据的过程主要依赖于redis的协议了。 我们...

春哥大魔王的博客
今天
6
0
乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
今天
4
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部