数据库基本操作

本文整理于网络,仅供阅读参考,如有不妥之处,敬请批评指正!如果您想加入微擎社区版技术大牛微信群和QQ群,请联系微信: ccccyyyy4444 或者 QQ:155120699 

数据基本操作

微擎系统数据库操作使用 PDO 兼容方式,以参数绑定的形式进行查询操作。
系统已对 PDO 兼容性进行检测及封装。下面具体说明一下数据库的几种基本操作方法。

tablename()

为了防止微擎系统的表与其它系统命名冲突,安装微擎时均会指定一个表前缀,在写SQL语句时,需要将表名称附加上表前缀。可以使用 tablename() 函数。

$sql = "SELECT * FROM ".tablename('users');
echo $sql;

//输出 SELECT * FROM ims_users

范围条件操作

微擎20160601以后的版本中,增加了pdo_getpdo_getallpdo_getcolumnpdo_getslicepdo_insertpdo_updatepdo_delete的范围条件的支持,具体支持的范围操作符如下:

$allow_operator = array('>', '<', '<>', '!=', '>=', '<=', '+=', '-=', 'LIKE', 'like');

示例:

//获取acid大于269的平台账号
$account = pdo_get('account', array('acid >' => '269'));

//增加一次用户的错误登录次数,两次变为2即可
pdo_update('users_failed_login', array('count +=' => 1), array('username' => 'mizhou'));

IN 和 NOT IN

当传入的条件数组的值为数组时,系统会自动转成成 IN 语句,如果和 <> 或 != (不等于)一起使用时,会自动转换为 NOT IN。

示例:

pdo_getall('users', array('uid' => array('1', '2', '3')));

//对应的SQL语句调用
pdo_fetchall("SELECT * FROM `ims_users` WHERE `uid` IN (:__uid_0,:__uid_1,:__uid_2)", array(':__uid_0' => 1, ':__uid_1' => 2, ':__uid_2' => 3));
pdo_getall('users', array('uid <>' => array('1', '2', '3')));

//对应的SQL语句调用
pdo_fetchall("SELECT * FROM `ims_users` WHERE `uid` NOT IN (:__uid_0,:__uid_1,:__uid_2)", array(':__uid_0' => 1, ':__uid_1' => 2, ':__uid_2' => 3));

IS NULL 和 IS NOT NULL

当且仅当值为大写的NULL字符串时,系统会认为这是需要查询NULL值,会将SQL写成 IS NULL 的形式,具体如下:

pdo_get('users', array('username' => 'NULL'));

//此语句会转化为 

SELECT * FROM user WHERE username IS NULL

聚合查询

当获取的字段中是聚合字段时,比如 COUNT(*), SUM()等,如果指定过别名,则可以真通过别名获取值,如果未指定别名,则可以通过字段排序的索引获取。

示例:

$usercount = pdo_get('users', array(), array('COUNT(*)', 'uid', 'MAX(uid)', 'MIN(uid) AS minuid'));

//$usercount 值为
Array (
	[0] => 103 //总数
	[uid] => 1 
	[2] => 179 //最大UID
	[minuid] => 1 //最小UID
)

链示查询

链式查询只支持一些常用简单的查询过于复杂的业务需求还是建议直接使用SQL语句。

查询用户表中的前十条男性的用户数据,代码如下:

$query = load()->object('query');
$row = $query->from('users')->where('type', '1')->orderby('uid', 'desc')->limit(10)->getall();
本页目录
  1. 数据基本操作
    1. tablename()
  2. 范围条件操作
  3. IN 和 NOT IN
  4. 聚合查询
  5. 链示查询
文档统计
浏览次数:175472次
编辑次数:210次历史版本
最近更新:2023-01-16 16:16:34

如果看不懂微擎社区版二次开发手册或者遇到问题,请联系微信: ccccyyyy4444 或者 QQ:155120699 ,如果我们有空闲时间,可以免费为您答疑解惑。