php+mysqli预处理技术实现添加、修改及删除多条数据的方法


Posted in PHP onJanuary 30, 2015

本文实例讲述了php+mysqli预处理技术实现添加、修改及删除多条数据的方法。分享给大家供大家参考。具体分析如下:

首先来说说为什么要有预处理(预编译)技术?举个例子:假设要向数据库添加100个用户,按常规思路,就是向数据库发送100个执行请求,此时,按照 mysql 数据库的工作原理,它需要对每一条执行语句进行编译(这里就有100次)。所以,这里的效率是非常低的。

预处理(预编译)技术的作用,就是减少编译的次数和时间,以提高效果。通过一个案例来说明,预处理(预编译)技术是如何做到的(好吧,先说清楚,当 php 程序第一次发送 sql 语句时,mysql 数据库就编译好,到了后面99次,php只要发送数据过去即可,不需要再进行编译)。

<?php
//1、创建数据库连接对象
$mysqli = new MySQLi("localhost","root","123456","liuyan");
if($mysqli->connect_error){
 die($mysqli->connect_error);
}
$mysqli->query("set names 'GBK'");
//2、创建预编译对象
$sql = "insert into account(id,balance) values(?,?)";
//这里用 ? 来代替要插入的数据值
$stmt = $mysqli->prepare($sql);
//返回一个statement对象,对象中的方法见手册 MySQLi_STMT
//3、绑定参数(需要插入的数据),并执行
$id=null;//这里我数据库设置成了 primary key auto_increment
$balance=100.5;
$stmt->bind_param("id",$id,$balance);
//绑定参数,返回值为布尔值。"if"按顺序代表插入数据的数据类型
//这里$id为int,用i表示,$balance为float型,用d表示,具体见手册
$res = $stmt->execute();//执行语句,返回值为布尔类型
//4、判断是否执行成功
if(!$res){
 echo "数据插入失败,balance值为:".$balance;
}else{
 echo "成功";
}

/*
*****插入第二条数据
*/
//3、绑定参数(需要插入的数据),并执行
$id=null;//这里我数据库设置成了 primary key auto_increment
$balance=400.3;
$stmt->bind_param("id",$id,$balance);
//绑定参数,返回值为布尔值。"if"按顺序代表插入数据的数据类型
//这里$id为int,用i表示,$balance为float型,用d表示。
$res = $stmt->execute();//执行语句,返回值为布尔类型
//4、判断是否执行成功
if(!$res){
 echo "数据插入失败,balance值为:".$balance;
}else{
 echo "成功";
}
?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php中stream(流)的用法
Mar 25 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
php中mt_rand()随机数函数用法
Nov 24 PHP
php实现通用的信用卡验证类
Mar 24 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
php验证邮箱和ip地址最简单方法汇总
Oct 30 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
php断点续传之文件分割合并详解
Dec 13 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
PHP实现登录验证码校验功能
May 17 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
php+xml结合Ajax实现点赞功能完整实例
Jan 30 #PHP
PHP速成大法
Jan 30 #PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 #PHP
PHP制作百度词典查词采集器
Jan 29 #PHP
php+mysqli事务控制实现银行转账实例
Jan 29 #PHP
php+mysqli批量查询多张表数据的方法
Jan 29 #PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
Jan 29 #PHP
You might like
大师制作的中短波矿石收音机
2020/04/02 无线电
ThinkPHP登录功能的实现方法
2014/08/20 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
php排序算法实例分析
2016/10/17 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
JS显示表格内指定行html代码的方法
2015/03/31 Javascript
JavaScript使用二分查找算法在数组中查找数据的方法
2015/04/07 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
JS代码实现table数据分页效果
2016/05/26 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
JS/jQuery实现获取时间的方法及常用类完整示例
2019/03/07 jQuery
Async/Await替代Promise的6个理由
2019/06/15 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
vue 计算属性和侦听器的使用小结
2021/01/25 Vue.js
[38:38]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.17
2020/12/18 DOTA
Python合并多个Excel数据的方法
2018/07/16 Python
django创建超级用户过程解析
2019/09/18 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
个人生活学习自我评价范文
2013/11/26 职场文书
农村婚礼主持词
2014/03/13 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
2014年行政部工作总结
2014/11/19 职场文书
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL