微擎开发------day02
基本要素: 微擎系统数据库操作使用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的更多相关文章
- 微擎开发------day04
(1) cache_write($key,$data) 按照指定键名缓存数据 cache_write('test', $data) (2) cache_load($key) 读取指定键名的缓存数据 ...
- 微擎开发------day03
微擎系统的路由 首先附上一张完整的项目目录图,可下载图片后查看详情 详细的路由介绍 (1)后台系统路由 例如:http://local.drp.com/web/index.php?c=home& ...
- 微擎开发------day01
微擎的数据常量 $_GPC -- 全局请求变量 类型: array 说明: 合并请求参数, 包括 $_GET, $_POST, $_COOKIE的内容. 相同键名覆盖规则为 $_COOKIE 覆盖 ...
- 微擎app端上传图片后删除不了图片
相信在微擎开发的哥们都知道, 微擎在手册方面还是有点坑的,根本不让人活啊.没办法, 开发时, 只能自己看着源码来搞>>>> 好, 不多说了. 现在来看一个坑 ..直接上代码\ ...
- 玩转微信2次开发1_交互通信api.php(微擎版)
在2次开发中,涉及到比较多的也比较繁琐的就是服务器和微信服务器的交互 用户在公众号里操作回复关键词都会让微信服务器和开发者的服务器进行交互 用户一旦关注了某某公众号--微信后台会去查询该公众号是否连接 ...
- 微擎模块的安装文件manifest.xml
微擎在安装或卸载模块时会根据manifest.xml生成(或删除)数据库中相应记录,并执行manifest.xml里指定的脚本. manifest.xml文件内容详细介绍如下: manifest - ...
- 微擎开启redis memcache文档2
微擎开启redis memcache 2018年01月20日 14:39:54 luogan129 阅读数:2161更多 个人分类: 微信开发 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- 微擎开启redis memcache
微擎开启redis memcache 2018年01月20日 14:39:54 luogan129 阅读数:2161更多 个人分类: 微信开发 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- [转]Linux 微擎系统搭建
本文转自:https://www.cnblogs.com/voidking/p/5296552.html 前言 时隔一年半,再次接触微信公众平台开发.相比于掌上大学.圈里.微站ABC.图灵机器人.小i ...
随机推荐
- ClassNotFoundException与NoClassDefFoundError异常
方法 loadClass()抛出的是 java.lang.ClassNotFoundException异常(一般是jar冲突或者没有引入jar):方法 defineClass()抛出的是 java.l ...
- mig_7series_v4_0_data_gen_chk
mig_7series_v4_0_data_gen_chk `timescale 1ns / 1ps ///////////////////////////////////////////////// ...
- oracle批量删除某个用户下的所有表
打开sql developer,输入如下语句,把USERNAME替换为需要删除的的用户名 然后把查询出来的结果复制出来执行一遍就行了. SELECT 'DROP table '||table_name ...
- nginx支持ipv6
今天碰到的问题是nginx对于ipv6的请求没有日志,顺便查了一下,nginx对ipv6的支持. nginx -v查看nginx是否支持ipv6,出现--with-ipv6,则是支持nginx的,否则 ...
- git一个分布式版本工具的使用
1.git和cvs的区别 分支更快,更容易 支持离线工作,本地提交可以稍后提交到服务器上 git提交是原子的,且是整个项目范围的,而不像cvs是对每个文件 git中的每个工作树都包含一个具有完整项目历 ...
- JVM内部细节之一:synchronized关键字及实现细节(轻量级锁Lightweight Locking)
在C程序代码中我们可以利用操作系统提供的互斥锁来实现同步块的互斥访问及线程的阻塞及唤醒等工作.然而在Java中除了提供Lock API外还在语法层面上提供了synchronized关键字来实现互斥同步 ...
- Node Express服务器设置与优化
一.代码部分 * 启用gzip压缩,减少网络数据量 var compression = require('compression')var express = require('express')va ...
- 用java打印图形
代码如下 public static void main(String[] args) { for (int i = 0; i <7; i++) { for (int j = 0; j < ...
- Source Code Pro 编程字体
Source Code Pro :是 Adobe 公司号称最佳的编程字体,而且还是开源的 它非常适合用于阅读代码,支持 Linux.Mac OS X 和 Windows 等操作系统,而且无论商业或个人 ...
- 安装jdk1.9后报 Error:java: 无效的源发行版: 1.9
现象: intillj IDE 运行main方法 Information:javac 1.8.0_101 was used to compile java sources Error:java: 无效 ...