预处理语句及绑定参数
============
预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高。
预处理语句的工作原理如下:
数据库解析,编译,对SQL语句模板执行查询优化,并存储结果不输出。
执行:最后,将应用绑定的值传递给参数("?" 标记),数据库执行语句。应用可以多次执行语句,如果参数的值不一样。
相比于直接执行SQL语句,预处理语句有两个主要优点:
预处理语句大大减少了分析时间,只做了一次查询(虽然语句多次执行)。
绑定参数减少了服务器带宽,你只需要发送查询的参数,而不是整个语句。
预处理语句针对SQL注入是非常有用的,因为参数值发送后使用不同的协议,保证了数据的合法性。
~~~
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// 插入一行
$name = 'one';
$value = 1;
$stmt->execute();
// 用不同的值插入另一行
$name = 'two';
$value = 2;
$stmt->execute();
?>
~~~
~~~
<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
// 插入一行
$name = 'one';
$value = 1;
$stmt->execute();
// 用不同的值插入另一行
$name = 'two';
$value = 2;
$stmt->execute();
?>
~~~
- 目录
- 第一章:PHP简介、开发环境、基本语法
- 0.0 各类操作系统下环境配置
- 1.0 基本语法和控制符
- 1.1 变量常量
- 1.1.1 显示数据Echo、Var_dump
- 1.1.2 数据类型
- 1.2 判断逻辑(if、switch)
- 1.3 循环逻辑(for、while)
- 1.4 数组
- 1.4.1 Foreach循环
- 1.4.2 数组操作
- 1.5 函数
- 1.5.5 编码规范PSR
- 1.6 魔术变量
- 1.7 超全局变量
- 1.8 时间日期
- 1.9 字符串操作
- 1.10 开发/部署环境配置
- 1.11 PECL 、 Yaf 、 Swoole
- 第二章:PHP+数据库
- 2.0 SQL入门
- 2.1 PDO连接、操作数据库
- 2.2 PDO的CURD操作
- 2.3 预处理
- 2.4 SQLite轻量级数据库
- 2.5 NoSQL数据库
- 2.6 缓存 、主从复制、集群 、负载均衡
- _连接 + 管理数据库(过期)
- _增删查改CURD操作(过期)
- 第三章:PHP面向对象 + 常用功能
- 5.1 面向对象入门
- 5.2 面向对象特性
- 5.3 文件上传
- 5.4 富文本编辑
- 5.6 MVC框架模式
- 5.7 文件读取函数
- 5.8 URL相关
- 5.9 Serialize序列化
- 第四章:Cookie+Session+用户模块
- 4.1 Cookie
- 4.2 Session
- 4.3 用户中心
- 4.4 SSO单点登录
- 4.5 类 C S 架构REST和Oauth用户中心
- 第五章:Linux基础+Git入门+远程部署
- 3.1 Linux基础
- 3.2 Git使用
- 3.3 远程部署
- 第六章:PHP框架
- 第七章:PHP安全和测试
- 第八章:包管理工具+PSR代码规范
- PHP社区代码规范 PSR
- 第九章:PHP测试 + PHP调试
- 第十章:性能优化+网站架构+第三方服务
- 10.1 云计算和网站架构
- 第十一章:PHP拓展
- 拓展:十二章 PHP爬虫
- 拓展:十三章 CMS实战
- 拓展:十四章 微信公众号开发
- 拓展:第十五章 注释、API文档、IDE自动提示
- 拓展:第十六章 API开发
- 附录:参考资料
- 附录:实用在线工具
- 实用技巧和常用函数
- Linux下WDCP主机面板配置
- 使用Git部署到MoPass云
- Curl内网访问封装函数
- 附录:开源组件参考