pdo 参数化查询 mysql函数_PDO笔记之参数化查询
参数化查询解释在这里:Wiki参数化查询 (少有的Wiki中文比英文介绍的要详细的编程条目)
PDO中参数化查询主要用到prepare()方法,然后这个方法会返回一个PDOStatement对象,也就SQL声明(不知道怎么翻译),此时SQL语句只是被编译,但并未执行,调用PDOStatement中方法后会执行SQL语句,如下示例:
$sm = $db->prepare('SELECT login_oid FROM logined WHERE user_id=:user_id;');
$sm->bindValue(':user_id', $user_id, PDO::PARAM_INT);
$sm -> execute();
在execute()执行前,就可以调用bindValue()或者bindParam()方法替换之前准备的SQL语句中的你指定参数了,在SQL语句中指定参数有两种方式:':name'和'?',上面代码中的用的是前一种,后一种的方式是:
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?;');
$sm->bindValue(1, $calories, PDO::PARAM_INT);
$sm->execute();
bindValue()有三个参数,第一个指定要替换掉SQL语句中哪一个参数,第二个指定替换后的值,第三个指定值的类型,类型对应如下:
PDO::PARAM_BOOL
布尔类型
PDO::PARAM_NULL
NULL类型
PDO::PARAM_INT
整数类型
PDO::PARAM_STR
字符串类型如 CHAR, VARCHAR, string
PDO::PARAM_LOB
资源类大对象,如文件等
PDO::PARAM_STMT
不知道
PDO::PARAM_INPUT_OUTPUT
这个好像是扩展类型
里面没有提供实数类型,这个很诧异
再说说execute()这个方法,它本身也可以做参数替换,但是它会把所有值的类型都变成字符串类型,如下
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?;');
$sm->execute(array($calories));
多参数替换如下
$sm = $db->prepare('SELECT * FROM fruit WHERE calories < ?, id < ?;');
$sm->execute(array($calories, $user_id));
pdo 参数化查询 mysql函数_PDO笔记之参数化查询相关推荐
- 珍藏多年的MySQL函数大全笔记,掌握数据库真不难
做程序员的谁会离得开数据库呢?今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们! 如果数据库函数你能 ...
- mysql 变量作表名查询_使用MySQL函数变量作为表名查询
我需要有一个表中增加一定的ID(如AUTO_INCREMENT)函数使用MySQL函数变量作为表名查询 我有水木清华这样 DELIMITER $$ DROP FUNCTION IF EXISTS `G ...
- php查询mysql数据库乱码_PHP怎样处理查询MySQL数据库中文乱码?_后端开发
PHP如何处理查询MySQL数据库中文乱码? 1.将MySQL数据库默许的编码是UTF-8: 2.在MySQL中建立表时,将字符集设置为UTF-8: 3.在PHP中查询数据之前,将数据库编码设置为UT ...
- mysql分组和where条件查询,mysql中where和having条件查询的区别
having一般跟在group by后面,先对查询结果分组,再根据having条件,筛选满足条件的组,限制字段最好选择分组的字段,可以操纵使用聚合函数(sum().count().avg()等)的列, ...
- php查询mysql表里的数据_3.php查询mysql数据表所有记录
// 第一步:连接 mysql 服务器. $con = mysql_connect("localhost","root","start_2011&qu ...
- 查询mysql 中的空文本_MySQL查询以显示空列的自定义文本
让我们首先创建一个表-mysql> create table DemoTable -> ( -> FirstName varchar(20) -> ); 使用插入命令在表中插入 ...
- 查询mysql中user表_怎么查询mysql user表?
在mysql中,可以使用"SELECT * FROM mysql.user;"语句来查询user表,且必须拥有对user表的查询权限才可执行该语句.新创建的用户只有登录MySQL服 ...
- 查询mysql存储数据大小_MySQL如何查询数据占用存储空间的大小?
最简单的方式,直接查看全局的,如下所示: mysql> use information_schema; Reading table information for completion of t ...
- ava查询mysql的数据_MYSQLi数据访问查询数据
单条件查询 数据查询 请输入汽车品牌: 汽车代号 汽车名字 系列代号 汽车油耗 汽车价格 $tj = " 1=1 ";//恒成立条件 $name = ""; i ...
最新文章
- 解决nginx重启“var/run/nginx/nginx.pid no such file or directory问题
- HDU 5821 Ball
- TCP/IP学习笔记(七)四次挥手
- 使用PM2搭建在线vue.js开发环境(以守护进程方式热启动)
- java getabsolutepath,详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别
- ASP.NET Core 中断请求了解一下(翻译)
- kata_小规模流处理kata。 第1部分:线程池
- vb6.0企业版win7_比win7更快?官方精简win10:3G+不更新,旧电脑福音
- requests 证书验证
- Hadoop 集群搭建补充
- python为运行为何出现乱码_python中文的显示乱码怎么办
- 物业管理系统(C++/详细源码/思路流程图)
- 电容式 触摸按键 原理
- excel填充序列_分分钟搞定10万个序号自动填充,拒绝加班,你还在手动输入吗?...
- 《灵飞经》①洪武天下 第三章 东岛三尊
- html网站title、description和keywords、
- 【人工智能】德国人工智能技术发展现状和未来趋势
- Gstore官网学习二:安装(笔者自带填坑)
- Xilinx SDK 中 的 'No rule to make target ' / '没有规则可以创建...'
- 【数学建模】模糊数学运算——python实现各类运算
热门文章
- php_sapi常量,PHP常量PHP_SAPI与函数php_sapi_name()简介,PHP运行环境检测
- php导入csv文件,php实现CSV文件导入和导出
- composer查看当前镜像取消_国内全量镜像大全
- stm32f407能跑linux吗_跑步能跑进医院?那我该做跑步运动吗?想健康一点太难了...
- wordpress房产信息网_Realia v3.1.2 wordpress房地产模板 租房网站模板
- ajax跨域请求(cors实现),ajax跨域请求(CORS实现)
- java 文件缓冲区_Java开发笔记(八十六)通过缓冲区读写文件
- Angular使用总结 --- 如何正确的操作DOM
- [Python][小知识][NO.3] Python 使用系统默认浏览器打开指定URL的网址
- jquery.cookie.js 使用方法