php预处理更新,预处理查询与更新操作

一,在实际开发中使用预处理语句来操作数据库可以彻底消灭SQL注入的攻击;所以预处理还是比较重要的;下面的代码是使用预处理语句来对数据库进行查询和更新的操作;预处理操作的主要环节如下:

1,生成预处理语句:$sql="";

2,生成该语句的预处理对象 :涉及prepare()方法;

3,生成对象成功进行参数绑定:涉及bind_param():方法 s代表字符串 i代表整数 d 代表浮点数

4,执行操作:execute();成功返回 true 失败返回false();

其中要注意的是查询操作中结果集的回去get_result();获取的结果集也是一个对象;调用结果集对象的方法

fetch_assoc();即可获取到结果集中的数据<?php

//连接数据库,其中mysql.php是已经写好了的数据库连接文本使用的是面向对象的数据库连接生成了$mysqli对象;

require 'mysql.php';

//生成预处理查询语句;1,首先第一个任务是查询数据库中id=13的数据

$sql="SELECT * FROM `user1` WHERE `id` = ? ";

//查询的用户id 写在数组$data1中;

$data1=['id'=>'13'];

$mysqli_stmt = $mysqli->prepare($sql);//生成预处理对象:利用$mysqli->prepare()方法

//参数绑定:s代表字符串 i 代表整数 d 代表浮点

$mysqli_stmt->bind_param( 'i',$data1['id']);

//执行预处理语句;execute()方法,成功放回true;失败返回false

if($mysqli_stmt->execute()){//如果查询成功,则需要获取到查询的数据,在对查询的数据进行修改

$result=$mysqli_stmt->get_result();//获取到查询的结果集

$rows=$result->fetch_assoc();//获取到查询数据在一维数组$rows中;

//生成更新操作的预处理语句

$sql2="UPDATE `user1` SET `name`=?,`password`=sha1(?),`email`=? WHERE `id`=?";

//生成一个更新操作的预处理对象$stmt;

$stmt=$mysqli->prepare($sql2);

//将要更新的数据写在数组$data 中;

$data=['name'=>'ANDA','password'=>'123','email'=>'ande@qq.com'];

//进行参数绑定,注意前后顺序

$stmt->bind_param('sssi',$data['name'],$data['password'],$data['email'], $rows['id']);

if($stmt->execute()){//执行更新操作成功返回true,失败则返回false;

if($stmt->affected_rows==1){//如果更新成功则数据表会有一条记录被影响,因为在上面我们只更新了一条数  //据

echo '

更新成功

';

}else{

echo '

没有数据被更新

';

}

}else{

echo '

更新失败'.$stmt->error.'

';

}

}else{

echo '

查询失败'.$mysql_stmt->error.'

';

}?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值