基本要素: 微擎系统数据库操作使用PDO兼容方式,参数绑定进行查询操作

(1) 数据表加上表前缀

$sql  = "select * from ".tablename('users');

等价  select * from ims_users

(2)范围条件操作

① pdo_get()查询

使用: pdo_get($tablename,$condition,$fields,$limit)

$user = pdo_get('users', array('uid' => 1), array('username', 'uid'));

等价 select  username ,uid  from ims_users where uid =1 limit 1

② pdo_getcolumn()查询  指定查询表中获取一条记录

使用: pdo_getcolumn($tablename,$condition=array(),$fields,$limit)

$user =pdo_getcolumn('users', array('uid' => 1),'username',1));

等价 select  username    from ims_users where uid =1 limit 1

③ pdo_getall()查询  指定查询表中全部记录

使用:pdo_getall($tablename,$condition=array(),$fields=array(),$keyfields='',$orderby =array(), $limit=array())

$user = pdo_getall('users', array('status' => 1), array() , '' , array('uid','groupid') , array(1,10));

//生成的SQL等同于:SELECT  *  FROM ims_users WHERE status ='1'  ORDER BY  uid,groupid  LIMIT 1, 10

②pdo_getslice()查询  指定查询表中获取一条记录

使用:pdo_getslice($tablename, $condition = array(), $limit = array(), &$total = null, $fields = array(), $keyfield = '', $orderby = array())

$user = pdo_getslice('users', array('status' => 2), array(1,10) , $total , array() , '' , array('uid','groupid'));

//生成的SQL等同于$user = SELECT * FROM ims_users WHERE status ='2' ORDER BY uid,groupid LIMIT 1,10

③pdo_fetch()查询一条记录,参数绑定传值,防止SQL注入

pdo_fetch($sql,$params=arrray())

$user = pdo_fetch(" SELECT username, uid FROM " .tablename('users')." WHERE uid =:uid LIMIT 1",array(":uid"=>1));

等价: $sql = select username,uid from ims_users where uid = 1 limit   1

$user = pdo_fetch("SELECT * FROM ".tablename('users')." WHERE username LIKE :username ",array(":username"=>"%mi%"))

等价:$sql = select * from ims_user where user_name like "%mi%";

④pdo_fetchcolumn()  返回值,字符串

pdo_fetchcolumn($sql,$params=array(),$column=int)

$user_total = pdo_fetchcolumn("SELECT count(*)  FROM ".tablename('users') );

⑤pdo_fetchall()

pdo_fetchall($sql,$params=array(),$keyfield="");

$user =  pdo_fetchall("SELECT username,uid FROM ".tablename('users'),array(),'uid');

(3)增,删, 改

新增一条数据

pdo_insert($tablename,$data=array(),$replace =false)

$user_data = array(

'username'=>'mizhou',

'status'=>'1')

$result = pdo_insert('users',$user_data)

更新一条数据

pdo_update($tablename,$data = array(),$condition,$glue='ADD')

$user_data = array(

'username'=>'mi')

$result = pdo_update('users',$user_data,array('id'=>2));

删除指定条件的数据

pdo_delete($tablename,$condition=array(),$glue='ADD')

$result = pdo_delete('users',arrau('username'=>'mi')

自定义SQL执行语句

pdo_query($sql,$params = array())

))

与pdo_query类似的是pdo_run

pdo_run 可一次执行多条语句,sql语句之间以;分割

例如

$sql = <<< EOF

$sql1 ;$sql2; $sql3

EOF;

pdo_run($sql);

pdo_debug()调试模式

INNODB事物表的处理逻辑

使用 pdo_begin();    pdo_commit();   pdo_rollback()

 

微擎开发------day02的更多相关文章

  1. 微擎开发------day04

    (1) cache_write($key,$data)  按照指定键名缓存数据 cache_write('test', $data) (2) cache_load($key)  读取指定键名的缓存数据 ...

  2. 微擎开发------day03

    微擎系统的路由 首先附上一张完整的项目目录图,可下载图片后查看详情 详细的路由介绍 (1)后台系统路由 例如:http://local.drp.com/web/index.php?c=home& ...

  3. 微擎开发------day01

    微擎的数据常量 $_GPC   -- 全局请求变量 类型: array 说明: 合并请求参数, 包括 $_GET, $_POST, $_COOKIE的内容. 相同键名覆盖规则为 $_COOKIE 覆盖 ...

  4. 微擎app端上传图片后删除不了图片

    相信在微擎开发的哥们都知道, 微擎在手册方面还是有点坑的,根本不让人活啊.没办法, 开发时, 只能自己看着源码来搞>>>> 好, 不多说了. 现在来看一个坑  ..直接上代码\ ...

  5. 玩转微信2次开发1_交互通信api.php(微擎版)

    在2次开发中,涉及到比较多的也比较繁琐的就是服务器和微信服务器的交互 用户在公众号里操作回复关键词都会让微信服务器和开发者的服务器进行交互 用户一旦关注了某某公众号--微信后台会去查询该公众号是否连接 ...

  6. 微擎模块的安装文件manifest.xml

    微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库中相应记录,并执行manifest.xml里指定的脚本. manifest.xml文件内容详细介绍如下: manifest - ...

  7. 微擎开启redis memcache文档2

    微擎开启redis memcache 2018年01月20日 14:39:54 luogan129 阅读数:2161更多 个人分类: 微信开发   版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  8. 微擎开启redis memcache

    微擎开启redis memcache 2018年01月20日 14:39:54 luogan129 阅读数:2161更多 个人分类: 微信开发   版权声明:本文为博主原创文章,未经博主允许不得转载. ...

  9. [转]Linux 微擎系统搭建

    本文转自:https://www.cnblogs.com/voidking/p/5296552.html 前言 时隔一年半,再次接触微信公众平台开发.相比于掌上大学.圈里.微站ABC.图灵机器人.小i ...

随机推荐

  1. day 44 JavaScript

    一.javascript简介 JavaScript是前台语言 JavaScript是前台语言,而不是后台语言. JavaScript运行在用户的终端网页上,而不是服务器上,所以我们称为“前台语言”.J ...

  2. TableLayoutPanel 动态添加 行 列

       //添加行 横排 ++this.tbPnl.RowCount; this.tbPnl.RowStyles.Add(new System.Windows.Forms.RowStyle(System ...

  3. Linux内核分析第七次作业

    分析Linux内核创建一个新进程的过程 Linux中创建进程一共有三个函数: 1. fork,创建子进程 2. vfork,与fork类似,但是父子进程共享地址空间,而且子进程先于父进程运行. 3. ...

  4. JavaScript图形库

    做前端少不了画图,html5 的 canva 很强大,可是如果所有需求都自己画图,恐怕会被 leader 炒掉.记录一下我用过的几个 2D 和 3D 的js图形库,各种功能.我就不分 2D 和 3D ...

  5. Webservices部署在IIS6.0上的一个小问题

    部署方式还是跟网站的部署方式一样,可是通过localhost访问一直提示400(bad request)错误. 可以在iis上预览到.在vs上引用的时候怎么都预览不到. 换个思路,把localhost ...

  6. 01-Introspector内省机制

    在java领域编程中,内省机制相当的不错,可以省去我们程序员很多的不必要的代码 比如说:在jdbc工具类 我们可以将ResultSet结果集待到 javabean对象中 将http请求报文的数据 转换 ...

  7. python中赋值,深拷贝,浅拷贝区别

    这三种 的区别就是 复制的变量 是否是原变量的引用. 赋值:只是原变量的引用. 浅拷贝和深拷贝的区别 需要通过 子元素 区分 浅拷贝:子元素的 引用相同 深拷贝:所以引用都不相同,完全复制一份 这三种 ...

  8. java泛型的作用及实现原理

    一.泛型的介绍 泛型是Java 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以用在类.接口和方法的创建中,分别称为泛型类.泛型接口.泛型方法. Ja ...

  9. SpringBoot,SpringCloud入门到精通最简单教程

    https://blog.csdn.net/ztx114/article/details/78091689

  10. Python中xlrd和xlwt模块使用方法

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...