可以使用多种方式实现预处理:指的是在绑定数据进行执行的时候,可以有多种方式。

预处理语句中为变量

使用数组指定预处理变量

1、准备预处理语句(发送给服务器,让服务器准备预处理语句)

PDOStatement PDO::prepare:类似exec将一条SQL语句发送给Mysql服务器

//PDO::prepare 能够自动的准备一个预处理语句,用户需要准备的只是预处理所要执行的语句

//需求:往学生表里循环插入10条记录

//PDO的预处理能够自动的将对应的以:开始的变量给记录下来,实际发送给服务器的是“?”

$sql1 = "insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)";

2、发送预处理语句

$stmt = $pdo->prepare($sql1);

3、给预处理绑定数据

$arr = array(

':s_name' => '房祖名',

':s_num' => 'itcast0013',

':s_gender' => 0,

':s_age' => 28,

':c_id' => 2

);

4、执行预处理:将要操作的数据发送给预处理语句,再执行预处理语句

PDOStatement::execute([$array]):数组用来传递对应的参数

$stmt->execute($arr);//执行预处理

通过绑定变量

bindParam

bool PDOStatement::bindParam ( mixed $parameter , mixed &$variable [, int $data_type = PDO::PARAM_STR [, int $length [, mixed $driver_options ]]] )

在执行预处理之前,将之前预处理语句所指定的变量进行赋值

只能通过变量的形式进行赋值(引用传值)

bindValue

bool PDOStatement::bindValue ( mixed $parameter , mixed $value [, int $data_type = PDO::PARAM_STR ] )

执行与bindParam一样

在执行预处理之前,将之前预处理语句所指定的变量进行赋值,或者直接将值作为参数进行绑定

$stmt->bindValue(':s_name','张三');

$stmt->bindValue(':s_num','itcast0015');

$stmt->bindValue(':s_gender',0);

$stmt->bindValue(':s_age',30);

$stmt->bindValue(':c_id',3);

bindParam与bindValue的区别

1、bindParam必须要先声明变量,再使用变量;bindValue可以直接使用值

2、bindValue是一次性的(因为是值传递,若变量值改变了,则需要重新绑定bindValue),而bindParam可以无限使用(因为使用的引用传值,一旦变量的值进行改变,那么对应的组织SQL语句时所用到的变量的值也跟着改变)

预处理语句中为?

使用数组指定预处理变量

通过绑定变量

此时,bindParam和bindValue绑定的时候,第一个参数都为数字,数字对应第几个“?”

php pdo mysql 预处理_php -- PDO预处理相关推荐

  1. pdo mysql 事务_PHP PDO对象如何确定它是否已经存在于MySQL事务中?

    我有两个复杂的 PHP对象,每个对象都有几个MysqL表中的数据. 有时,我只需要从数据库中删除一个对象A,这需要3个sql语句. 有时,我需要从数据库中删除一个对象B,这需要4个sql语句,并且还需 ...

  2. pdo mysql dsn_使用PDO构造函数连接数据库及DSN详解

    PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll.php_pgsql.dll.php_m ...

  3. php pdo mysql 预处理_PHP PDO mysql 处理类(prepare 预处理)

    使用预处理,动态处理需要操作的字段和值.先使用PDO来动态绑定参数.PDOModel: /** * Description of PDO * * @author Administrator */ cl ...

  4. pdo mysql分页_php运用PDO连接数据库,实现分页效果

    PDO是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高 ...

  5. pdo mysql fetchall_pdo fetch,pdo fetchAll,pdo query,pdo prepare用法举例

    通过pdo来从数据库中调取数据. 其中主要涉及到 pdo fetch,pdo fetchAll,pdo query,pdo prepare使用 . 可以通过以下几种方式,学习下php pdo的用法. ...

  6. php pdo mysql 乱码,php pdo连接数据库 解决中文乱码问题(wordpress mysql 问号?? ??)...

    摘要:PHP 用pdo连接数据库时出现中文乱码问题解决办法1.array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names utf8"), ...

  7. php mysql预处理_PHP MySQL 预处理语句

    预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下:预处理:创建 SQL 语句模板并发送 ...

  8. pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  9. php pdo mysql哪个好_php pdo和mysqli对比选择

    1)总的比较 PDO MySQLi 数据库支持 12种不同的数据库支持 支持MySQL API OOP OOP + 过程 Connection Easy Easy 命名参数 支持 不支持 对象映射支持 ...

最新文章

  1. struts2中welcome-fileindex.action/welcome-file直接设置action,404的解决方案
  2. python写完程序保存_Python学习笔记——文件处理
  3. android脚步---不同界面之间切换
  4. 【Deep Learning笔记】用Inception-V3模型进行图像分类
  5. 文巾解题 53. 最大子序和
  6. 小程序获取form_id 与 小程序获取openid
  7. android double转string_Java 数组转 List 的三种方式及对比
  8. Spring boo系列--jpa和thymeleaf
  9. PHP图形图像的典型应用 --常用图像的应用(验证码)
  10. C语言 文件读写 fputc 函数 - C语言零基础入门教程
  11. Python kafka操作实例
  12. Spring —— context:property-placeholder/元素
  13. 小米电动车官宣!雷军:今晚发布会跟大家仔细说
  14. 常用模板 UPD12/4
  15. 电商类微信平台推广方法有哪些?
  16. TX2 刷机 安装 jetpack 卡在determining IP adress问题
  17. 服务器c盘哪些文件可以删,教你c盘哪些文件可以删除
  18. 清华镜像安装Python第三方库
  19. linux 命令操作
  20. 天下布魔新手的6点游戏建议 教你快速入门的攻略

热门文章

  1. 根据流程部署ID来获取流程定义图片
  2. 全国专业技术人员计算机应用能力考试word2003题库版,全国专业技术人员计算机应用能力考试word2003...
  3. 筑龙网下载的文件格式是php_为什么使用迅雷下载的文件都是PHP格式的
  4. 华南理工大学计算机科学与工程学院篡改,华南理工大学涉嫌篡改成绩人员已被停职调查...
  5. java工具类与集合类_JAVA学习---集合和工具类
  6. oracle ogg checkpoint,OGG 11g Checkpoint 详解
  7. 雷达的正交波形设计matlab源码,雷达系统设计MATLAB仿真
  8. 大众eagit_试驾大众全新高尔夫GTI
  9. 韩语在线翻译图片识别_一键截图识别屏幕文字,支持实时翻译还能朗读
  10. 支持多分支语句吗_Go的条件判断语句