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连接数据库的两种方式- 面向过程 面向对象的更多相关文章

  1. JSP连接数据库的两种方式:Jdbc-Odbc桥和Jdbc直连(转)

    学JSP的同学都要知道怎么连数据库,网上的示例各有各的做法,弄得都不知道用谁的好.其实方法千变万化,本质上就两种:Jdbc-Odbc桥和Jdbc直连. 下面先以MySQL为例说说这两种方式各是怎么连的 ...

  2. ADO.NET连接数据库的两种方式

    //实现了IDisposable接口的类,用using括起来 //插入数据 string connString = "Data Source=(local);Initial Catalog= ...

  3. php连接数据库的两种方式

    一.mysqli方式连接数据库 $mysql_conf = array( 'host' => 'localhost:3306', 'db' => 'ssql', 'db_user' =&g ...

  4. javascript消除字符串两边空格的两种方式,面向对象和函数式编程。python oop在调用时候的优点

    主要是javascript中消除字符串空格,比较两种方式的不同 //面向对象,消除字符串两边空格 String.prototype.trim = function() { return this.re ...

  5. Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式

    解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和Out ...

  6. WebService的两种方式Soap和Rest比较

    我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...

  7. WebService的两种方式SOAP和REST比较 (转)

    我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑.如google map api采用了AJAX方式,通过javascript ...

  8. CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking)

    CSharpGL(18)分别处理glDrawArrays()和glDrawElements()两种方式下的拾取(ColorCodedPicking) 我在(Modern OpenGL用Shader拾取 ...

  9. 两种方式实现java生成Excel

    Web应用中难免会遇到需要将数据导出并生成excel文件的需求.同样,对于本博客中的总结,也是建立在为了完成这样的一个需求,才开始去了解其实现形式,并且顺利完成需求的开发,先将实现过程总结于此.本博文 ...

随机推荐

  1. Delphi 建立非可视化对象

  2. linux 的常用命令(2)

    tail [必要参数] [选择参数] [文件] | 显示文件结尾内容  -v  显示详细的处理信息-q  不显示处理信息-num/-n (-)num      显示最后num行内容-n +num 从第 ...

  3. SpringBoot项目中使用Bootstrap 的CSS、JS资源

    首先 需要在 application.properties 文件中添加这句 spring.mvc.static-path-pattern=/** 不然是使用不了的 还有一种办法就是 使用bootstr ...

  4. C语言之const

    鱼鹰  鱼鹰谈单片机 2月19日 预计阅读时间: 5 分钟 我们知道,数据分为两种,一种为只读,一种为可读可写,为了防止一些不变的数据被程序意外的修改,有必要对它进行保护.这就是 const 的作用. ...

  5. SQL server 自定义函数FUNCTION的使用

    原文链接:https://blog.csdn.net/lanxingbudui/article/details/81736402 前言:        在SQL server中不仅可以可以使用系统自带 ...

  6. lumen 队列处理

    数据库要使用 database 队列驱动,你需要数据表保存任务信息(比如失败任务).要生成创建这些表的迁移,可以在项目目录下运行 Artisan 命令 queue:table,迁移被创建之后,可以使用 ...

  7. Java基础知识学习01

    0 项目,包,文件,类 Mytest是自己建的java工程,包含src和JRE System Libery.其中src是存放自己的代码的地方,JRE包含程序运行时所需要的各种文件:在src下包含Tes ...

  8. Spring详解------事务管理

    目录 1.事务介绍 2.事务的四个特性(ACID) 3.Spring 事务管理的核心接口 4. PlatformTransactionManager  事务管理器 5.TransactionStatu ...

  9. Linux shell -"a-d"命令

    shell中条件判断if中的-z到-d的意思 分类:shellLinux (2006)  (0) shell中条件判断if中的-z到-d的意思  [ -a FILE ] 如果 FILE 存在则为真.  ...

  10. Python常用模块之hashlib模块

    1.hashilib模块的功能 python的hashlib提供了常见的摘要算法,如MD5, SHA1等等. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换成一 ...