php连接数据库的两种方式- 面向过程 面向对象
php连接数据库的两种方式- 面向过程 面向对象
一、面向对象
1. 链接数据库
$conn = @new mysqli("127.0.0.1","root","","mydb");
if($conn->connect_errno){ //返回链接错误号
// 返回链接错误信息
die("数据库链接失败:".$conn->connect_error);
}
2. 选择数据库
$conn->select_db("mydb") or die("选择数据库失败:".$conn->error);
3.设置字符集编码
$conn->set_charset("utf8") or die("设置字符集失败:".$conn->error);
4. 准备SQL语句
$sql = <<<sql
select * from tb1;
sql;
5. 执行SQL语句,返回结果集或者布尔类型true/false
$res = $conn->query($sql);
6. 返回结果集中的字段数
var_dump($res->field_count);
返回结果集中的总行数
var_dump($res->num_rows);
7. 返回关联数组和索引数组
var_dump($res->fetch_array());
返回索引数组
var_dump($res->fetch_row());
返回关联数组
var_dump($res->fetch_assoc());
返回一个对象
var_dump($res->fetch_object());
8. 将结果集指针移到指定位置
$res->data_seek(0);
9. 返回结果集中的一个字段,并将指针移到下一列
var_dump($res->fetch_field());
直接返回结果集中的所有字段
var_dump($res->fetch_fields());
10.释放结果集资源
$res->close();// $res->free();
关闭数据库连接
$conn->close();
二、面向过程
1.连接数据库
@ $conn = mysqli_connect("127.0.0.1", "root", "slk5550123", "mydb");
if(mysqli_connect_error($conn)){ //返回错误信息
exit("数据库连接失败,失败号".mysqli_connect_errno($conn)."失败信息:".mysqli_connect_error($conn));
}
连接数据库同时判断
@ $conn = mysqli_connect("127.0.0.1","root","slk55501233","mydb") or die("数据库连接失败,失败信息:".mysqli_connect_error($conn));
连接数据库: mysqli_connect
参数: ① 主机地址 ②MySql用户名 ③MySql密码 ④选择链接的数据库 ⑤端口号
返回: 如果链接成功,返回资源类型的标识符号
如果连接失败,返回false
如果有MySql建立的连接不止一条,那么以后操作数据库的各种函数,都必须传入返回的连接符号。
如果与MySql建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个标识符号
3. 选择数据库mysqli_select_db
参数: ① 资源表示符 ②选择的数据库名称
返回: 连接成功返回true,连接失败返回false
如果修改数据库成功,则资源标识符中的数据库就会发生变更
如果修改失败,而没有通过代码终止操作,则后续代码可以使用原数据库继续执行。
//选择数据库同时判断
mysqli_select_db($conn,"mydb") or die("数据库选择失败");
4.设置字符集编码
mysqli_set_charset($conn,"utf8");
//只能是utf8,而不能使utf-
5.编写sql语句
$sql = "select * from tb1";
6. 执行sql语句
如果是增删改,将返回bool类型 表示是否成功 DML
如果是查询,将返回资源结果集 DQL
如果查询失败,返回false
$res = mysqli_query($conn,$sql);$res = mysqli_query($conn,$sql);
7.返回数据库中操作影响的行数及插入语句的ID
DML时: 返回上一次操作时,受影响的行数
var_dump(mysqli_affected_rows($conn));
执行插入语句时,返回上次最新插入的主键id
var_dump(musqli_insert_id($conn))
DQL时,返回资源结果集中的行数
mysqli_num_rows($res);
DQL时,返回资源结果集中的字段数
mysqli_num_fields($res);
8. 处理结果集,返回关联数组和索引数组
参数: ① 需要处理的结果集
② 返回那种数组格式,mysqli_assoc - 关联数组
mysql_num 数字数组
mysql_both 默认,同时产生关联和数字数组
返回关联数组
//mysqli_fetch_assoc($result)
返回索引数组
//mysqli_fetch_row($result)
返回一个对象
//mysqli_fetch_object($result)
9.返回结果集中的一个字段,并将指针移到下一列
mysqli_data_seek:设置结果集指针位置
mysqli_data_seek($res, 0);
返回结果集中每一列字段的信息(字段名、表名、数据库名、字段类型、长度等)*/
mysqli_fetch_field($res);
10.释放查询资源结果集并关闭数据库连接
mysql_free_result($res);
关闭数据库连接
mysql_close($conn);
php连接数据库的两种方式- 面向过程 面向对象的更多相关文章
- JSP连接数据库的两种方式:Jdbc-Odbc桥和Jdbc直连(转)
学JSP的同学都要知道怎么连数据库,网上的示例各有各的做法,弄得都不知道用谁的好.其实方法千变万化,本质上就两种:Jdbc-Odbc桥和Jdbc直连. 下面先以MySQL为例说说这两种方式各是怎么连的 ...
- ADO.NET连接数据库的两种方式
//实现了IDisposable接口的类,用using括起来 //插入数据 string connString = "Data Source=(local);Initial Catalog= ...
- php连接数据库的两种方式
一.mysqli方式连接数据库 $mysql_conf = array( 'host' => 'localhost:3306', 'db' => 'ssql', 'db_user' =&g ...
- javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点
主要是javascript中消除字符串空格,比较两种方式的不同 //面向对象,消除字符串两边空格 String.prototype.trim = function() { return this.re ...
- Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和Out ...
- WebService的两种方式Soap和Rest比较
我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...
- WebService的两种方式SOAP和REST比较 (转)
我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...
- CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)
CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...
- 两种方式实现java生成Excel
Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...
随机推荐
- 如何将公式插入到word
平台:win10 x64+ office 2010+ Mathpix Snipping Tool +mathtype6.9b 直接安装就行,下载好了以后,要和word连接起来还需要下载一个插件,有 ...
- Vmvare 虚拟机固定IP
首先我们打开虚拟机的虚拟网络编辑器,打开vmvare菜单栏的编辑,选择虚拟网络编辑器. 在打开的网络虚拟器中,会看到相关信息,虚拟机网络类型采用的NAT模式,子网地址是192.168.89.0,虚 ...
- 图像处理---《在图片上打印文字 windows+GDI+TrueType字体》
图像处理---<在图片上打印文字 windows+GDI+TrueType字体> 刚开始使用的是putText()函数做,缺陷是只能显示非中文: 接着,看大多数推荐Freetype库来做 ...
- Ubuntu系统---安装Caffe (+OpenCV+Python+CPU-only)
安装配置Ubuntu14.04+Caffe (+OpenCV+Python+CPU-only) 记录 [作者:Wu Ping.时间:20180428.] 本人已经安装很多次的Caffe了:从开始的初探 ...
- JavaScript教程——函数(arguments 对象)
arguments 对象 定义 由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数.这就是arguments对象的由来. arguments对象包含了 ...
- solr 中文分词相关(转载)
smartcn和ik的对比,来自http://www.cnblogs.com/hadoopdev/p/3465556.html 一.引言: 年的时候,就曾经有项目涉及到相关的应用(Lunce构建全文搜 ...
- TCP/IP协议簇 端口 三次握手 四次挥手 11种状态集
第一章:概念介绍 1.1 VLAN 1.1.1 什么是VLAN VLAN (Virturl LAN) ,翻译成中文是:“虚拟局域网”.VLAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计 ...
- LaTeX新人使用教程[转载]
LaTeX新人教程,30分钟从完全陌生到基本入门 by Nan 对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看. 本教程面向对LaTeX完全无认知无基础的新人.旨在让新人能够用最简单快捷的方 ...
- Java进阶知识11 Hibernate多对多单向关联(Annotation+XML实现)
1.Annotation 注解版 1.1.应用场景(Student-Teacher):当学生知道有哪些老师教,但是老师不知道自己教哪些学生时,可用单向关联 1.2.创建Teacher类和Student ...
- CentOS7部署tomcat
首先检查是否安装了jdk,然后再查看是否配置了JAVA_HOME 配置JAVA_HOME的方法: 我的是jdk已经安装好了是1.8 我需要找到它的安装目录 [root@bogon xwg]# java ...