1

应用环境

mysqli预处理功能(大量数据处理时使用)

2

步骤

a)mysqli连接数据库

$mysqli = new mysqli('localhost','root','root','chuanzhi');

b)设置编码

$mysqli->set_charset('gb2312');

c)发送query语句

使用$mysqli->prepare($query)这个方法表示是预处理,如果涉及到取值,必须指定查询字段

$query = "select id,proName,proClass,proPrice from product where id>?";

$stmt = $mysqli->prepare($query);

d)提供条件

比如上句用了?作为不确定的值,就需要指定

$stmt->bind_param('i', $id);        用变量绑定?表示的值,i表示整型,d表示浮点型,b代表二进制,s代表其它的所有

$id='1';                                指定变量的值

$stmt->execute();                发送变量,此时服务器的语句已经完整了

e)从sql服务器中取回结果

预处理语句会将结果集保存在sql开辟的内存中,php开辟的内存无法直接使用(count是php函数,不是sql函数,无法直接与sql内存交互),默认情况是每次执行fetch()会从sql内存中取出一行,但是不使用store_result()就无法获取行数.当然如果你的结果只有一行,可以无视这一句.请记住:在mysqli预处理中取出数据,只能使用fetch()这是因为mysqli_stmt类并没有其它取值方法

$stmt->store_result();//如果用变量接收的话,会发现成功了显示1,否则显示0

f)获取结果集行数

$count = $stmt->num_rows();

g)绑定结果集需要输出的字段

$stmt->bind_result($id,$proName,$proClass,$proPrice);        名字无所谓,反正按顺序对应query的字段,变量个数要和query字段个数一致

h)输出结果

前面说了,既然要取值,当然前面query指定了查询字段,上句的变量用上了

i)

你懂的,关闭mysqli链接

事务处理

1

应用环境

对于安全比较在意的时候使用

2

步骤

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!

a)连接数据库和设置编码

不用说,当然是连接数据库和设置编码了,mysql和mysqli都支持事务处理

b)关闭自动提交

$mysqli->autocommit(false);在sql的客户端里面用set autocommit = 0;

c)开启事务

开启一个事务start transation(mysql中才有这一句,mysqli不需要这一句);

d)执行sql语句

e)判断执行结果是否是自己想要的

如果是,就提交$mysqli->commit();

否则,回滚$mysqli->rollback();

f)开启自动提交

$mysqli->autocommit(true);        //个人认为这句并不是必须的,因为页面执行完,会回到初始状态,也就是自动提交状态

g)关闭数据库连接

$mysqli->close();

mysqli预处理和事务处理的更多相关文章

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

    本文实例讲述了php+mysqli预处理技术实现添加.修改及删除多条数据的方法.分享给大家供大家参考.具体分析如下: 首先来说说为什么要有预处理(预编译)技术?举个例子:假设要向数据库添加100个用户 ...

  2. PHP 对MySQLI预处理的包装

    mysql 类 <?php class Mysql { private static $instance; private $link; private $query; private $stm ...

  3. mysqli 预处理语句

    预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. <?php // 设置编码格式 header('content-type:text/html;charset=utf-8'); / ...

  4. php mysqli 预处理操作数据库

    用到的SQL表 CREATE TABLE `student_01` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARAC ...

  5. php mysqli扩展之预处理

    在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理. 在mysqli操作中常常涉及到它的三个主要类: ...

  6. PHP(Mysqli和PDO)预处理

    PHP预处理主要是用来防SQL注入的,开发程序的都明白这样一个道理,不能相信用户的任何输入,如果用户输入问题你没有做相应的安全, 那么:你的程序是很危险的,很容易被攻击的!预处理:只分析两个:mysq ...

  7. mysqli 操作数据库(转)

    从php5.0开始增加mysql(i)支持 , 新加的功能都以对象的形式添加 i表示改进的意思 功能多.效率高.稳定 编译时参数: ./configure --with-mysql=/usr/bin/ ...

  8. mysqli 操作数据库

    从php5.0开始增加mysql(i)支持 , 新加的功能都以对象的形式添加 i表示改进的意思 功能多.效率高.稳定 编译时参数: ./configure --with-mysql=/usr/bin/ ...

  9. PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)

    原文: PHP5: mysqli 插入, 查询, 更新和删除  Insert Update Delete Using mysqli (CRUD) PHP 5 及以上版本建议使用以下方式连接 MySQL ...

随机推荐

  1. javascript --- 设计模式之单体模式(一)

    单体是一个用来划分命名空间并将一些相关的属性与方法组织在一起的对象,如果她可以被实例化的话,那她只能被实例化一次(她只能嫁一次,不能二婚). 单体模式是javascript里面最基本但也是最有用的模式 ...

  2. 使用HyperV虚拟机装系统

    新建虚拟机 新建虚拟机 进行相关参数设置 选择系统安装镜像位置,名称及位置 指定代数一般为1代即可 为虚拟机运行分配内存 创建虚拟硬盘或连接已有虚拟硬盘,并分配硬盘空间 核对创建虚拟机相关信息 安装系 ...

  3. WEB程序调用客户端程序

    最近一个项目中要点击WEB页面上的链接启动自己编写的程序,而且还要接收参数,google了1.5小时,终于初步试验通过了. 尝试google了:web send message windows for ...

  4. 消除 activity 启动时白屏、黑屏问题

    默认情况下 activity 启动的时候先把屏幕刷成白色,再绘制界面,绘制界面或多或少有点延迟,这段时间中你看到的就是白屏,显然影响用户体验,怎么消除呢? 在 Activity theme 设置sty ...

  5. iOS 学习 - 8 TableViewCell 自适应高度

    思路:计算文字的高度,存进数组 加注:存在中文,需要加一行文字的高度,也就是 font 主要代码 #pragma mark -- UITableViewDelegate - (CGFloat)tabl ...

  6. 冒泡排序(java版)

    public class BubbleSortTest { //冒泡排序 public static void bubbleSort(int[] source) { //外层循环控制控制遍历次数,n个 ...

  7. JQuery EasyUI中datagrid的使用

    在学习过程中,可以参照JQuery EasyUI的官方网站学习.地址:http://www.jeasyui.com/demo/main/index.php 在学习JQuery EasyUI中的Data ...

  8. Swing应用开发实战系列之二:设计日期选择面板窗口

    Swing本身没有提供什么华丽丽的日期时间选择控件,所以笔者就在网上搜了个第三方的jar包jdatepicker-1.3.2.jar,基于此设计了个很轻量的日期选择面板,很简单的.效果图如下所示: 代 ...

  9. Heartbeat+LVS构建高可用负载均衡集群

    1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...

  10. Elastic search入门

    首先是下载elasticsearch https://www.elastic.co/downloads,解压: 然后下载了中文分析器ik,github上搜索elasticsearch-ik就能找到,h ...