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脚本数据库功能详解(中)
Oct 09 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
Sep 01 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
PHP扩展CURL的用法详解
Jun 20 PHP
PHP常用编译参数中文说明
Sep 27 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
部署PHP时的4个配置修改说明
Oct 19 PHP
php实现生成验证码实例分享
Apr 10 PHP
PHP运行模式汇总
Nov 06 PHP
Laravel学习教程之本地化模块
Aug 18 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 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
PHP个人网站架设连环讲(三)
2006/10/09 PHP
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
jQuery循环滚动展示代码 可应用到文字和图片上
2012/05/11 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
H5手机端多文件上传预览插件
2017/04/21 Javascript
js实现从左向右滑动式轮播图效果
2017/07/07 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
JavaScript实现短信倒计时60s
2017/10/09 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
python读取word文档的方法
2015/05/09 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
Python yield生成器和return对比代码实例
2020/04/20 Python
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
防沙治沙典型材料
2014/05/07 职场文书
企业授权委托书范本
2014/09/22 职场文书
政审证明材料
2015/06/19 职场文书
茶花女读书笔记
2015/06/29 职场文书
golang中的空slice案例
2021/04/27 Golang