Download the PHP package myqee/database without Composer
On this page you can find all versions of the php package myqee/database. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download myqee/database
More information about myqee/database
Files in myqee/database
Package database
Short Description myqee database library
License Apache-2.0
Homepage http://www.myqee.com/
Informations about the package database
迈启数据库类库
迈启数据库类库是一个功能强大的数据库类库,可以独立使用,支持自动主从读写分离、支持 MySQL、MongoDB 等常用数据库,除了可以避免数据注入,还可以让你几乎不用写SQL语句就可以实现对数据库的查询、操作等,而且做到了兼容大部分数据库语法的功能,这样你即便需要把MySQL换成MongoDB都不需要改动什么代码,大大增加代码的可移植性。DB 类继承了 QueryBuilder 类,可以实现大部分语句的跨数据库类型的解析。
一个简单的例子:
这个在 MySQL 的驱动里会自动生成这样的SQL语句:
如果是 MongoDB 的话,则会使用 MongoDB 的语法进行查询,类似:
DB::instance($configName = 'default')
获取一个静态已实例化的对象,Database::instance()
和 new Database()
都会返回一个实例化好的Database对象,不同的是,前者不会重复构造,而后者每次都会实例化,推荐使用Database::instance()
$db->get($asObject = false, $useMaster = null)
构造SQL并进行查询,它首先执行compile()方法获得SQL语句,然后用此SQL语句执行query(),是数据库对象中比较常用的一个方法
$db->query($sql, $asObject = false, $useMaster = null)
执行SQL,由于自行拼写的SQL语句会存在一定的安全隐患,所以推荐尽量少用此方法直接执行SQL语句
- $sql - 需要执行的SQL语句
- $as_object - 返回对象,true - 返回一个stdClass , 或者指定一个其它的对象名,比如Arr
- $use_master - 是否使用主数据库查询,只对查询语句设置有效(update,insert等语句会自动切换到主数据库),当然,只有你的数据库配置里配置了主从数据库才会起到实际的作用
$db->lastQuery()
返回此数据库对象最后一次执行的SQL语句
$db->update($table = null, $value = null, $where = null)
更新数据
$db->insert($table = null, $value = null)
插入数据,用法基本和update()一样,只是没有where条件
$db->delete($table = null, $where = null)
删除指定条件下的数据
$db->countRecords($table = null, $where = null)
统计指定条件下数目
$db->replace($table = null, $value = null, $where = null)
替换数据,即MySQL的REPLACE INTO,用法同update(),返回作用行数
merge()
replace() 方法的别名
$db->tablePrefix()
返回当前数据库配置表前缀,注意,只有在使用自己定义的$sql时需要注意需要自行加上表前缀,否则使用QueryBuilder构造出的SQL时系统会自动加上表前缀
$db->compile($type = 'select')
构造生成SQL语句并返回
$db->driver()
返回当前驱动对象。目前支持MySQL和MySQLI两种类型
$db->autoUseMaster($autoUseMaster = true)
设置是否一直在主数据库上查询 这样设置后,select会一直停留在主数据库上,直到$this->auto_use_master(false)后才会自动判断
$db->isAutoUseMaster()
返回当前是否一直使用主数据库
DB::parseDsn($dsn)
解析一个类似 mysql://root:123456@localhost:3306/mydb/
为一个数组配置格式
$db->transaction()
返回一个数据库事务对象,若当前驱动不支持事务则返回一个 false