db对象

db配置

配置文件:/root/cfgs/boot/cfg_db.php;

表的前后缀:db_prefix-表前缀,db_suffix-表后缀;

默认表前缀为空,表后缀为_ys,由安装时配置决定;

db对象

先配置数据库链接,见文件:/root/cfgs/boot/cfg_db.php;

代码:$db = glbDBObj::dbObj();, 或$db = db(); 即得到了一个可操作的db对象;

提示:本系统很多场合,已经初始化了这个$db对象,可直接使用;

调用外部数据

配置文件:/root/cfgs/boot/cfg_db.php。

在文件尾部添加类似代码(链接织梦系统)

$_cfgs['dede_cms'] = $_cfgs;

//$_cfgs['dede_cms']['db_host'] = 'localhost';

$_cfgs['dede_cms']['db_name'] = 'dede_v998'; // 数据库名(pdo连接不使用)

$_cfgs['dede_cms']['db_prefix'] = 'dd_';

$_cfgs['dede_cms']['db_suffix'] = '';

代码:$db = glbDBObj::dbObj('dede_v998'); 或$db = db('dede_v998');

即得到了一个可操作的织梦系统的db对象;

增删改查

插入数据

$data['kid']=basKeyid::kidTemp();

$data['kno']='1';

$data['atime']=time();

$data['content']='123abc@q.com';

$db->table('xtest_keyid')->data($data)->insert();

更新数据

$data['kno']='2';

$data['content']='456abc@q.com';

unset($data['kid']);

$db->table('xtest_keyid')->data($data)->where("kid='2019-88-77ab'")->update();

数据库查询

查询一条数据:

$info=$db->table('表名')->where($whrstr)->find();

成功返回一维数组,否则返回false

限制字段

$info=$db->table('表名')->field('id,title')->where($whrstr)->find();

排序

$info=$db->table('表名')->field('id,title')->where($whrstr)->order('id desc')->find();

注意:order('id desc')逆序order('id asc')升序

缓存

$info=$db->table('表名')->cache(10)->where($whrstr)->find();

cache($time) $time>0,数据缓存时间,$time=0,不缓存,$time=-1永久缓存

查询多条数据

$list=$db->table('表名')->where($whrstr)->select();

成功返回二维数组,否则返回false

限制字段

$list=$db->table('表名')->field('id,title')->where($whrstr)->select();

排序

$list=$db->table('表名')->field('id,title')->where($whrstr)->order('id desc')->select();

限制条数

$list=$db->table('表名')->field('id,title')->where($whrstr)->order('id desc')->limit(10)->select();

缓存

$list=$db->table('表名')->cache($time)->field('id,title')->where($whrstr)->order('id desc')->limit(10)->select();

cache($time) $time>0,数据缓存时间,$time=0,不缓存,$time=-1永久缓存

查询数据数量

$count=$db->table('表名')->where($whrstr)->count();

成功返回一个整数,否则返回false

$count=$db->table('表名')->cache($time)->where($whrstr)->count();

删除数据

$whrstr为查询条件,可为数组或字符串,$whrstr['id']=1;

删除成功返回影响的数据行数,否则返回false

注意,当$whrstr为空时,不会删除数据。防止不小心把整个表的数据给删除了

$db->table('xtest_keyid')->where("kid='2015-cr-1234'")->delete();

规范说明

如使用缓存,初始化db如下:

$db = glbDBObj::dbObj([], 1);, 或$db = db([], 1);;

table('表名')

默认表名 省略前后缀;

原生的sql语句用中,使用 $db->pre/$db->ext 得到配置的表 前缀/后缀;

$db->table('表名',$nofix=false)

特殊数据库前缀

$nofix===2,=> $full 加上前后缀 的字符串(表名)

$nofix===1,=> 不加前后缀 返回$db;

$nofix===0,=> 加上前后缀 返回$db;

先后顺序

field(),limit(),order(),cache(),table(),where()没有先后顺序之分

$whrstr条件

可为字符串或数组,如果是数组,数组下标表示数据库字段名 多个元素用and连接,

原生sql

复杂一点的sql,可以写成原生的sql查询条件

查看生成的sql语句,echo $db->sql; 或者echo $db->getSql();

数据库操作有问题时,用来查看生成的sql语句 是否正确

操作数据库基类

具体方法查看/imcat/core/glib/glbDBObj.php文件

问题与缺陷

数据库操作:$db->操作里面不要含有$db->操作,(少数情况下会出错)

如:

$db->table('users_uacc')->data($acc+basSql::logData())->insert(); //

-=>改为两句:

$dataex = basSql::logData();

$db->table('users_uacc')->data($acc+$dataex)->insert();

设计缺陷原则上,避免使用mysql关键字 作为数据表的字段;本系统使用了【show/key/char】等字段:

【show】用于控制资料显示如否,【key(wex_menu/base_paras中使用)】, 【char(inittypes/types*中使用)】;

这算是一些小缺陷,容易引起错误;出问题时,请按如下解决:

$list = $db->table('users_inmem')->field('uid,grade,show')->where($usql)->select();

子句修改为:->field('uid,grade,`show`')即可;

常用代码

如果$sql为查询条件,则返回二维数组,且可以设置缓存$db->cache(缓存时间)->query($sql);

如果sql不是查询条件语句,缓存设置无效,返回的数据跟mysqli_query($sql)一样

$db->query($sql);

--- 系统常用代码 ---

$db->table($tabid)->data(basReq::in($fm))->insert();

$db->table($tabid)->where("kid='$id'")->delete();

$db->table($tabid)->data(array('enable'=>'1'))->where("kid='$id'")->update();

$list = $db->table('base_model')->field('kid,title')->limit(3)->select(); if($list)foreach($list as $r){}}

$fm = $db->table($tabid)->where("model='$mod' AND kid='$kid'")->find();

$count = $db->table('base_model')->where("pid='groups'")->count();

$sql = "SELECT kid,title FROM base_model_ys WHERE pid='groups' LIMIT 3";

$list = $db->arr($sql);

print_r($db->fields('xtest_keyid_ys'));

print_r($db->tables());

常用sql

UPDATE users_adminer_ys set uid=concat('2010-4q-',uname)

UPDATE `users_person_ys` b INNER JOIN users_uacc_ys a ON a.uname=b.uname SET b.uid=a.uid;

UPDATE `dede_addonarticle` SET body=REPLACE (body,'',");

wex导入mysql_数据库操作相关推荐

  1. toad导入数据_配置toad进行导入导出数据库操作

    最近需要对oracle进行导入导出操作,于是研究使用toad进行导入导出oracle数据库操作,现稍作记录. oracle的导入导出不管是否使用toad还是pl/sql工具进行操作,实际上最终都是通过 ...

  2. mfc 访问局域网mysql_数据库操作:MFC连接与MYSQL

    数据库操作:MFC连接与MYSQL mysql 与MFC通常情况下都是用ODBC或者是是ADO相连接,但有点伤 我直接找网上的教程,仿照着进行连接,试了n边还是只能连接上,但无法进行如图读取,写入的操 ...

  3. estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作

    [数据库]es~通过ElasticsearchTemplate进行聚合操作 0 2020-08-24 17:00:38 聚合操作,我们可以对数据进行分组的求和,求数,最大值,最小值,或者其它的自定义的 ...

  4. MySQL_数据库操作

    目录 MySQL启动及关闭服务 MySQL登录命令 MySQL退出命令 查看数据库 选择数据库 SELECT命令 创建数据库 修改数据库 删除数据库 MySQL启动及关闭服务 启动 net start ...

  5. MySQL_数据库操作语句

    ZC:数据库名/表名/字段名 都使用小写字母 1. 创建 数据库 和 表 的时候,都要指定 编码方式为 utf-8 ! ! ! 因为 执行命令"show variables like 'ch ...

  6. 11G数据库导入10G的操作实践

    Oracle11g数据库导入Oracle10g数据库操作笔记 用exp.imp命令时进行11g备份,导入10g的时候会抛错:不是有效的导出文件,头部验证失败:未成功终止导入. 我今天就遇到了这种情况, ...

  7. Oracle11G的数据库数据导入导出(由11g上导出导入10g数据库等)

    常用命令 EXPDP USERID='scott/tiger@orcl as sysdba' schemas=scott directory=DATA_PUMP_DIR dumpfile=dp.dmp ...

  8. levedb 导入 mysql_[LevelDB] 数据库3:循序渐进 —— 操作接口

    数据库3:循序渐进 -- 操作接口 这一节将介绍数据库操作3个接口的实现,分别是Get.Put和Delete.介绍接口实现时,主要介绍数据的写入和读取,而先忽略这些操作可能触发的后台操作. Put和D ...

  9. excel 导入mysql_如何将Excel文件导入MySQL数据库

    本文实例为大家分享了Excel文件导入MySQL数据库的方法,供大家参考,具体内容如下 1.简介 本博客给大家分享一个实用的小技能,我们在使用数据库时常常需要将所需的Excel数据添加进去,如果按照传 ...

最新文章

  1. 【干货书】Python金融分析,714页pdf掌握数据驱动金融
  2. ubuntu websocket python2
  3. java 单机版_JAVA单机版管理系统源代码.pdf
  4. UA MATH574M 统计学习II 二元分类例子与高维问题
  5. 五个举措:现代化Jenkins 和终结“Jenkinsteins”
  6. Nginx——反向代理路径重写重定向实践示例
  7. java 链表反转_剑指BAT:如何最优雅着反转单链表?
  8. zookeeper运维管理
  9. ADB wifi调试步骤
  10. CDOJ--1850
  11. php 20分钟以前,php返回相对时间(如:20分钟前,3天前)的方法_PHP
  12. Cpp STL - vector常用语法
  13. ZStack的VPC特性详解及实战
  14. RS485无线通讯模块工作原理及应用场景
  15. 机器学习实战2之科比篮球生涯得分数据分析
  16. html flag属性,纯CSS实现文章左上角Flag标签
  17. 三种Web服务交互方案
  18. docker挂载mysql会失败_Docker Mysql 挂载 /var/lib/mysql 后无法启动
  19. 机器学习中的特征空间
  20. 运维之红帽管理员篇-----1. Linux系统简介 、 安装RHEL7系统 、 RHEL7基本操作

热门文章

  1. 基于Docker的云部署
  2. POJ 3660 Cow Contest 传递闭包+Floyd
  3. QTreeWidget简单使用之一
  4. rxjava在Android中的使用
  5. 【面试】数据库部分_达内培训
  6. matlab异步电动机转速,异步电动机变频调速系统的MATLAB建模与仿真
  7. 第五十讲 自定义总线(xbus)
  8. Linux基础运维命令
  9. 非线性结构数据及遍历算法详解
  10. java基于ssm的毕业论文管理系统