PHP.15-mysqli
从PHP5.0开始可以使用mysql(i), 是一个面向对象的技术(新加功能都会以对象形式添加)
i:表示改进,1. 功能增加了, 2,效率大大增加(以后的PHP项目改成mysqli),3,更稳定
mysqli使用面向对象技术,但也支持过程化的使用方式
mysqli扩展中给我提供了三个类:
1. mysqli和连接有关的类
2. mysqli_result表达了对数据库的查询所返回的结果集。
3. mysqli_stmt (后面重点介绍)
可以选择过程化编程,或是选择面向对象技术
mysql(i)_connect()
面向对象:$mysqli = new $mysqli("localhost", "username", "password", "select_db"); //实例化对象
面向过程:$mysqli = mysqli_connect("localhost", "username", "password", "select_db");
mysql(i)_select_db();
mysql(i)_query();
注:一般使用mysqli扩展就要使用面向对象的编程方式进行开发
1、mysqli处理结果集(mysqli_result)
使用select语句后,得到的结果集的处理
一、处理记录
属性:mysqli_num_rows(); //返回结果集中行的数量
方法:
data_seek(); //调整结果集指针到结果集任意一行
fetch_assoc(); //从结果集中取得一行作为关联数组
fetch_row(); //从结果集中取得行
注:常用的为上面两个
fetch_array(); //从结果集中取得一行作为数字数组或关联数组
fetch_object(); //从结果集中取得当前行,并作为对象返回。
free_result(); //释放结果内存
二、处理字段信息
field_count; //返回最近查找的列数
current_field; //获取结果指针的当前字段偏移量
lengths; //返回结果集中当前行的列的长度
fetch_field(); //从结果集中取得下一字段,并作为对象返回。
fetch_fields(); //返回结果集中代表字段(列)的对象的数组,然后输出每个字段名称、表格和最大长度
2、mysqli完成事务处理和一次执行多条sql语句
一、使用mysqli执行多条语句
a、就是没有结果集(如:插入、更新、删除等语句)
b、多条语句有结果集
二、使用mysqli完成事务处理
事务处理 (多个SQL要完成的任务看为是一个事务)一件事(有任何一个环节出错,都整个事务撤消, 如果都成功才去提交)
目前只有InnoDB 支持事务 (MyISAM)
默认表都是自动提交的(autocommit)
1. 关闭自动提交
2. start事务(如果自动提交已经关闭,使用mysqli不需要开启事务,PDO中则需要)
[start transaction:开启事务,在mysql中输入]
commit; //提交事务
rollback; //回滚当前事务
multi_query; //执行多条数据库语句
三、其他的mysqli类的中的成员使用
3、mysqli预处理类
mysqli_stmt预处理类(推荐你使用的类)
$mysqli=new mysqli("localhost", "root", "123456", "xsphpdb");
//准备好一条语句放到服务器中,插入语句
$sql="insert into shops(name, price, num, desn) values(?, ?, ?, ?)";
$stmt=$mysqli->prepare($sql);
//给占位符号每个?号传值(绑定参数) i:整形 d:浮点 s:字符 b:二进制
$stmt->bind_param("sdis", $name, $price, $num, $desn);
$name="zhangsan";
$price=56.78;
$num=66;
$desn="hello good";
//执行
$stmt->execute();
$stmt->close();
和mysqli和mysqli_result相比优点:
1. mysqli和mysqli_result参完成的功能,都可以使用mysqli_stmt完成
2. 效率上:高, 就是如果执行多次相同的语句,只有语句数据不同, 因为将一条语句在服务器端准备好,然后将不同的值传给服务器,再让这条语句执行
编译一次,使用多次
3. 安全上:SQL注入(? 占位) ,后期传的值不会当成SQL语句
PHP.15-mysqli的更多相关文章
- php mysqli mysqli_query() mysqli_real_query()
2016年11月26日 15:22:27 星期六 场景: PHP从mysql中读取数据 1. 一次性读取所有数据返给PHP 2. 每次循环只读取一掉记录 数据量小的时候可以使用第一种方法, 数据量很大 ...
- php示例代码之使用mysqli对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- PHP mysqli 扩展库(面向对象/数据库操作封装/事务控制/预编译)
1.和mysql扩展库的区别: (1 安全性.稳定性更高 (2 提供了面向对象和面向过程两种风格 2.php.ini 中的 extension=php_mysqli.dll 解除封印 3.面 ...
- PHP基础 mysqli的事务处理
1: <?php 2: // PHP 的mysqli的事务处理 3: //======================================================== 4: ...
- PHP的 Mysqli扩展库的多语句执行
$mysqli->multi_query($sqls); 执行多个sql语句,返回true/false 有结果集时,使用 $mysqli->store_result(); 来获取结 ...
- 【PHP&&mysqli】
msyqli和mysql只有一个字母的差别,真正的含义是msyql的增强版扩展. MySQL可以处理满足程序员对MySQL数据库操作的各种需要了,为什么还需要mysqli呢?因为mysqli支持面性对 ...
- php mysqli MySQL server has gone away 问题分析
结论 mysqli没有处理对端(MySQL server)的断开请求.在send时,收到对端(MySQL server)的RST,会打印MySQL server has gone away. 环境 x ...
- PHP 扩展在 Linux(centos7)系统下的编译与安装 以 mysqli 为例
(操作系统 Centos7,环境版本 php7) 01,进入到 PHP 解压后的源码包的的 ext 文件夹 02,查看是否存在 mysqli 扩展 => ls, 如果不存在需要去响应网站下载 ( ...
- php mysqli 链接数据库 CURD 增改查删
<?php function println($msg) { echo "<br>"; echo $msg; } $mysql_server_name = &qu ...
- php安装后,再添加模块pdo_mysql,mysqli
windows下,是动态链接库.dll,linux下是.so. linux下,假设php安装在/usr/local/php,php的源码包放在/usr/local/php-5.6.15 去php源码包 ...
随机推荐
- 夜色的 cocos2d-x 开发笔记 04
本章会把游戏的基本功能结束,前面实现了子弹发射,产生敌人. 接下来我们要,检测子弹与敌人碰撞,让玩家移动,实现这个游戏的基本功能. 于是多出了这几个方法,当然还是写在.h文件里 首先实现触摸监听的方法 ...
- System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值.解决办法是: 而这位大哥提出的解决办法 ...
- 项目01-flume、kafka与hdfs日志流转
项目01-flume.kafka与hdfs日志流转 1.启动kafka集群 $>xkafka.sh start 3.创建kafka主题 kafka-topics.sh --zookeeper s ...
- Microsoft EDP(enterprise database protection)选择应用程序在哪里可以访问企业数据
在配置策略时,对Rule template设置完成后,添加corporate identity.关于corporate identity, 目前没有什么好的理解,翻译过来就是“公司标识”,我也理解不了 ...
- SAP成都研究院大卫哥:SAP C4C中国本地化之微信小程序集成
今天的文章来自Wu David,SAP成都研究院C4C开发团队的架构师,在加入团队之前曾经在SAP上海研究院工作,组内同事习惯亲切地称呼他为大卫哥. 大卫哥身高据Jerry目测有1米8以上,是成都C4 ...
- SAP S4CRM和C4C的技术比较
如果您对SAP S/4HANA for Customer Management(以下简称S4CRM)和SAP Cloud for Customer(以下简称C4C)不甚熟悉,那我建议您可以先浏览我之前 ...
- CRM, C4C和Hybris的工作流简介
CRM的例子 Step by Step to debug IC inbox workflow WS14000164 C4C Custom recipient determination in work ...
- IOS 4个容易混淆的属性(textAligment contentVerticalAlignment contentHorizontalAlignment contentMode)
四个容易混淆的属性:1. textAligment : 文字的水平方向的对齐方式1> 取值NSTextAlignmentLeft = 0, // 左对齐NSTextAlignme ...
- Linux 源码安装MariaDB 10.0.16
cmake软件 tar -zxvf cmake-2.8.8.tar.gz cd cmake-2.8.8 ./bootstrap make && make install 依 ...
- 【CCPC-Wannafly Winter Camp Day3 (Div1) F】小清新数论(莫比乌斯反演+杜教筛)
点此看题面 大致题意: 让你求出\(\sum_{i=1}^n\sum_{j=1}^n\mu(gcd(i,j))\). 莫比乌斯反演 这种题目,一看就是莫比乌斯反演啊!(连莫比乌斯函数都有) 关于莫比乌 ...