php pdo mysql 预处理_php -- PDO预处理

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

预处理语句中为变量

使用数组指定预处理变量

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);//执行预处理

9d68cf3e6f73f22171ef78b815f12f64.png

通过绑定变量

bindParam

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

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

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

0233907e5554b3fd2bb08ff2cf644938.png

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语句时所用到的变量的值也跟着改变)

预处理语句中为?

使用数组指定预处理变量

7b3bbeb4737579267c02941ff1e85369.png

通过绑定变量

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

f1c024317beaffb5363d4a3f09103ef2.png

778652cf04c14c009206ce38bb7da6bd.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP连接MySQL数据库的三种方式分别是PDOMySQLi和mysqlPDOPHP Data Objects)是PHP提供的一种数据库操作扩展,支持多种数据库,其中包括MySQLPDO提供了一组统一的方法,使开发者能够以同样的方式对待不同的数据库。其优点包括安全性高、可移植性好、支持事务处理等。使用PDO连接MySQL数据库时,需要使用PDO的构造函数new PDO(),并传入相关的连接信息。 MySQLi(MySQL Improved)是PHP中的一种连接MySQL数据库的扩展,是对原有mysql扩展的增强和改进。MySQLi提供了面向对象和面向过程两种API,支持事务处理、预处理语句、存储过程等功能,同时也提供了对MySQL的新特性的支持。使用MySQLi连接MySQL数据库时,首先需要创建一个MySQLi对象,然后调用相应的方法进行连接、查询等操作。 mysql扩展是PHP早期版本提供的一种连接MySQL数据库的方式,但自PHP5.5.0版本开始已被弃用,不再被推荐使用。mysql扩展的连接方式相对简单,使用mysql_connect()函数进行连接,并传入相关的连接参数。然而,mysql扩展存在一些安全性和兼容性的问题,容易受到SQL注入等攻击。 综上所述,PDOMySQLi和mysqlPHP常用的三种连接MySQL数据库的方式。其中PDO具有较高的安全性和可移植性,使用方式统一;MySQLi支持较多的功能特性,包括事务处理、预处理语句等;mysql扩展已被弃用,不推荐使用。开发者可以根据自己的需求和情况选择合适的连接方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值