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

本文实例讲述了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绘制一个扇形的方法 - 2015-04-11 14:04:11

本文实例讲述了php绘制一个扇形的方法。分享给大家供大家参考。具体如下: php绘制一个扇形。关于参数说明,除最后一个参数外,其它都与弧线的参数一样,请参考上一篇《 php绘制一条弧线的方法 》。最后一个参数有四种类型。分别是: IMG_ARC_PIE、IMG_ARC_CHORD、IMG_ARC_NOFILL和IMG_ARC_EDGED,具体参数说明见php手册的 imagefilledarc 画扇形函数。 复制代码 代码如下: ?php //1、创建画布 $im = imagecreatetruecol
自 PHP 5 起,可以很容易地通过在 $value 之前加上 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。 复制代码 代码如下: ?php $arr = array(1, 2, 3, 4); foreach ($arr as $value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) ? 此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。 复制代码 代码如下: ?php foreach (array(1, 2, 3,
网站质量不错的网站可以在百度站长平台/数据提交/sitemap栏目下看到实时推送的功能, 目前这个工具是邀请开放, 百度的实时推送的api接口可以实时推送我们新发布的文章, 保证百度在第一时间收录. 百度站长平台 http://zhanzhang.baidu.com/ 打开百度站长平台, 点开实时推送的添加新数据接口获得带token的api推送地址: http://ping.baidu.com/sitemap?site=www.yourdomain.comresource_name=sitemapacce
本文实例讲述了php使用正则表达式获取图片url的方法。分享给大家供大家参考。 具体实现方法如下: 复制代码 代码如下: ?php header("Content-type:text/html;charset=utf-8"); $str = 'pimg src="images/11111111.jpg" alt="美女" //p'; $pattern = "/[img|IMG].*?src=['|\"](.*?(?:[.gif|.jpg]))['|\"].*?[\/]?/"; preg_match_all

深入理解php的MySQL连接类 - 2015-04-11 14:04:10

无意间在电脑里发现还有这么个Mysql的连接类,也不记得哪里收藏的了,贴上来吧。 后面几个show_databases和show_tables....等方法都用了一堆echo,好像一直不喜欢在类的方法里直接用输出语句,不过这也只是列举数据库和表名,构造函数的参数也可以给个默认值吧。 复制代码 代码如下: ?php /* * filename:mysql数据库连接类 */ class mysql{ private $db_host; //数据库主机 private $db_user; //数据库用户名 pri
复制代码 代码如下: ?php function getIPLoc_sina($queryIP){ $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=jsonip='.$queryIP; $ch = curl_init($url); curl_setopt($ch,CURLOPT_ENCODING ,'utf8'); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch,
1.php版本简介 php各版本之间的区别,php版本后面一般有VC6和VC9、Thread Safe和Non Thread Safe的区别,VC6就是legacy Visual Studio 6 compiler,就 是使用这个编译器编译的,VC9就是the Visual Studio 2008 compiler,就是用微软的VS编辑器编译的,如果你选用的是Apache或者其他服务软 件,那么选择VC6,选用的是IIS的话,那么请下载VC9 的。Thread Safe 是线程安全,而Non Thread

destoon整合UCenter图文教程 - 2015-04-11 14:04:09

1、首先登录UCenter管理中心 添加应用 2、填写完毕后,点提交,将页面滚动至底部 复制其中的Ucenter配置信息至记事本 注意图中的 数据表前缀 和 API地址 80%以上的整合失败是因为这两个参数填写错误导致的 3、进入Destoon管理后台 - 会员管理 - 模块设置 - 会员整合 填写相关参数 提交即可整合成功 通常情况下UC提示通信成功可能不等于整合成功 如果DZ里登陆退出不能和Destoon同步,可能是DZ跳转过快导致,可按下图调整跳转时间
php地址栏传中文$_GET下来后乱码,urlencode和urldecode用法详解 url编码 语法: string urlencode(string str); 返回值: 字符串 函数种类: 编码处理 例如: 复制代码 代码如下: ?php $ChineseName="我的名字,是中文的哦"; $EncodeStr=urlencode($ChineseName); echo "a href=#>? url解码 还原 URL 编码字符串。 语法: string urldecode(string str
复制代码 代码如下: ?php //thinkphp 路由定义规则 $route = array( 'news/:action/:year\d/:month/:day'='news/read?year=:2month=:3day=:4', 'news/:action^delete|update|insert/:year\d/:month/:day'=array( 'news/read?extra=:2status=1','year=:2month=:3day=:4'), ); $url = 'http:/