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 相关文章推荐
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
Yii学习总结之安装配置
Feb 22 PHP
PHP实现支持SSL连接的SMTP邮件发送类
Mar 05 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
php线性表的入栈与出栈实例分析
Jun 12 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
Feb 03 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP常用日期加减计算方法实例小结
Jul 31 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
Memcached常用命令以及使用说明详解
2013/06/27 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
php微信公众号开发模式详解
2016/11/28 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
JavaScript 组件之旅(四):测试 JavaScript 组件
2009/10/28 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
js+数组实现网页上显示时间/星期几的实用方法
2013/01/18 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
微信小程序wx.previewImage预览图片实例详解
2017/12/07 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
python实现报表自动化详解
2017/11/16 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
django一对多模型以及如何在前端实现详解
2019/07/24 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
tensorflow之并行读入数据详解
2020/02/05 Python
Python如何访问字符串中的值
2020/02/09 Python
python 利用zmail库发送邮件
2020/09/11 Python
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
工商管理本科毕业生求职信范文
2013/10/05 职场文书
小学运动会口号
2014/06/07 职场文书
呐喊读书笔记
2015/06/30 职场文书