博主信息
博文 35
粉丝 0
评论 0
访问量 33887
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
预处理查询与更新操作
小的博客
原创
1741人浏览过

一,在实际开发中使用预处理语句来操作数据库可以彻底消灭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 '<h2 style="color:green">更新成功</h2>';
  }else{
   echo '<h2 style="color:green">没有数据被更新</h2>';
  }
 }else{
  echo '<h2 style="color:red">更新失败'.$stmt->error.'</h2>';
 }
}else{
 echo '<h2 style="color:red">查询失败'.$mysql_stmt->error.'</h2>';
}?>


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学