学习php语法--数据库扩展(总结篇)

 

  前  言

 php 

 php中的数据库扩展mysql语法--本篇学习都是通过使用数字天堂的HBuider开发环境,连接mysql数据.介绍php连接mysql数据库的代码与函数。

本篇学习主要有两个部分:

  ①【面向过程】
  ②【面向对象】
 
内容大同小异:
        一、连接数据库
        二、检测数据库连接是否成功--连接数据库同时判断
        三、选择数据库
        四、编写SQL语句
        五、执行SQL语句--代码执行之后,返回的结果集
        六、处理结果集的一些函数
        七、释放查询资源结果集
        八、关闭数据库连接
        
          

以下所有代码HBuider中建立PHP文件实施。

 

1、面向过程

① 连接数据库 :
     连接数据库 使用:mysqli_connect
          参数: ① 主机地址 ② mysql用户名 ③ mysql密码 ④ 选择连接的数据库 ⑤ 端口号
          返回: 如果连接成功,返回资源类型的表示符号
                   如果连接失败,则返回false
        如果我们与MYSQL建立的链接不止一条,那么以后操作数据库的各种函数都必须传入返回的标识符号;
        如果我们与MYSQL建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个表示符号

  //$conn = mysqli_connect("xxx.0.0.x","root","","mydb");//密码为零可以省略
       $conn = mysqli_connect("xxx.0.0.x","root","1");  这行代码在所有代码之前的必须存在。

图片:


      图 1.1 Navicat Premium中的mysql主机中的mydb数据库
    

检测数据库连接是否成功
   mysqli_connect_errno():返回上次连接数据库的错误号,连接成功返回0
        mysqli_connect_error():返回上次连接数据库的错误信息
       代码如下 ↓↓↓
  
       if(mysqli_connect_errno()){
        die("lalalala:".mysqli_connect_error());
    }
    var_dump($conn);

打印的效果图片:


//连接数据库同时判断
    $conn = mysqli_connect("127.0.0.1","root") or die("lalalala:".mysqli_connect_error()); ;

③  选择数据库:mysqli_select_db
  参数: ① 资源标识符 ② 选择的数据库名称
       返回: 连接成功返回true,链接失败返回false
     
       如果修改数据库成功,则西苑标识符中的数据库就会发生变更
       如果修改失败,而没有通过代码终止操作,则后续代码可以使用原数据库继续执行。
     代码如下:
    //  ↓var_dump(mysqli_select_db($conn,"mydb1") or die("数据库选择失败") )
   效果图如下  ↓↓↓↓↓↓↓↓↓
    

      var_dump(mysqli_select_db($conn,"mydb") or die("数据库选择失败"));      
   效果图如下  ↓↓↓↓↓↓↓↓↓
    

④  编写SQL语句
  
mysql语句中的增删改查
  执行SQL语句

        如果是增、删、改,将返回布尔型的是否成功;
        如果是查询,返回资源结果集
        如果查询失败,返回false

图片:↓↓↓↓↓↓↓↓↓

        图片 1.2 数据库mydb中的表tb1中的表格内容


代码如下:
  //编写SQL语句--查询tb1表单中的所有数据
  $sql = "select * from tb1";

  //数据库mydb中执行执行sql语句。变量$conn看上文选择数据库
  $set = mysqli_query($conn, $sql);
  var_dump($set);
效果图:
  

        图 1.3 $set返回的结果集

⑥  处理结果集的函数(一)
  ↓↓承接上文↓↓
  //DQL时:返回资源结果集中的行数
       var_dump(mysqli_num_rows($set));
效果图:

        //DQL时:返回资源结果集中的字段(列)
        var_dump(mysqli_num_fields($set));
效果图:
 
  处理结果集的函数(二) 
  处理结果集,返回关联数组和索引数组
        mysqli_fetch_array()
        参数 ① :需要处理的结果集
        参数 ② :返回哪种数组格式
                    MYSQL_ASSOC   关联
                    MYSQL_NUM        索引
                    MYSQL_BOTH        默认,同时产生两种数组
代码如下(承接上文):
    var_dump(mysqli_fetch_array($set));
效果图:

   同时打印关联数组和索引数组
代码如下(承接上文):
    var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果图:


 
 //下方代码也返回关联数组同上图一样↑
 
var_dump(mysqli_fetch_assoc($set));
代码如下(承接上文):
    var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
效果图:


 //下方代码也返回索引数组同上图一样↑
 
var_dump(mysqli_fetch_row($set));

  处理结果集的函数(三)
  
//   结果集复位到最开始
  
// mysqli_data_seek($set,0)
代码如下:
 
 //   结果集复位到最开始
  mysqli_data_seek($set,0);
  //打印表单第一组数据
    var_dump(mysqli_fetch_row($set));
  //打印表单第二组数据
    var_dump(mysqli_fetch_row($set));
    //释放查询资源结果集
  
 mysqli_free_result($set);
    //关闭数据库链接
  
 mysqli_close($conn);
 
  1 <?php
  2     header("Content-type:text/html;charset=utf-8");
  3     
  4     /*连接数据库 使用:mysqli_connect
  5         参数: ① 主机地址 ② mysql用户名 ③ mysql密码 ④ 选择连接的数据库 ⑤ 端口号
  6         返回: 如果连接成功,返回资源类型的表示符号
  7                  如果连接失败,则返回false
  8      * 如果我们与MYSQL建立的链接不止一条,那么以后操作数据库的各种函数都必须传入返回的标识符号;
  9      * 如果我们与MYSQL建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个表示符号
 10      * 
 11      * 
 12     */
 13     $conn = mysqli_connect("127.0.0.1","root","","mydb");//密码为零可以省略
 14     //$conn = mysqli_connect("127.0.0.1","root","1");
 15     
 16     /* 检测数据库连接是否成功
 17      * mysqli_connect_errno():返回上次连接数据库的错误号,连接成功返回0
 18      * mysqli_connect_error():返回上次连接数据库的错误信息
 19      * ↓↓↓ */
 20     
 21     if(mysqli_connect_errno()){
 22         die("lalalala:".mysqli_connect_error());
 23     }
 24       var_dump($conn);
 25 
 26     //连接数据库同时判断
 27     $conn = mysqli_connect("127.0.0.1","root") or die("lalalala:".mysqli_connect_error()); ;
 28     
 29     
 30     
 31     /* 选择数据库mysqli_select_db
 32      * 参数: ① 资源标识符 ② 选择的数据库名称
 33      * 返回: 连接成功返回true,链接失败返回false
 34      * 
 35      * 如果修改数据库成功,则西苑标识符中的数据库就会发生变更
 36      * 如果修改失败,而没有通过代码终止操作,则后续代码可以使用原数据库继续执行。
 37      * */
 38     //var_dump(mysqli_select_db($conn,"mydb1") or die("数据库选择失败") )
 39     
 40     var_dump(mysqli_select_db($conn,"mydb") or die("数据库选择失败"));
 41     
 42     
 43     /*
 44      * 设置字符集编码格式mysqli_set_charset()
 45      * 只能设置为utf8而不是utf-8
 46      * */
 47     mysqli_set_charset($conn,"utf8") or die("数据库编码集设置失败");
 48     
 49     /* 编写SQL语句
 50      * */
 51     $sql = "select * from tb1";
 52     /*<<<str
 53     INSERT INTO tb1 (username,age,sex) VALUES ("张三","122","女");
 54 str;
 55      * */
 56     /* 执行SQL语句
 57      * 如果是增、删、改,将返回布尔型的是否成功;
 58      * 如果是查询,返回资源结果集
 59      * 
 60      * 如果查询失败,返回false
 61      * */
 62     $set = mysqli_query($conn, $sql);
 63     
 64     //DML时,返回上一次操作时,受影响的行数
 65     //var_dump(mysqli_affected_rows($conn))
 66     
 67     //执行插入语句时,返回上次最新插入的主键ID
 68     //var_dump(mysqli_insert_id($conn));
 69     
 70     var_dump($set);
 71     
 72     //DQL时:返回资源结果集中的行数
 73     var_dump(mysqli_num_rows($set));
 74     //DQL时:返回资源结果集中的字段(列)
 75     var_dump(mysqli_num_fields($set));
 76     
 77     /* 处理结果集,返回关联数组和索引数组
 78      * mysqli_fetch_array()
 79      * 参数 ① :需要处理的结果集
 80      * 参数 ② :返回哪种数组格式 
 81      *             MYSQL_ASSOC   关联
 82      *             MYSQL_NUM        索引
 83      *             MYSQL_BOTH        默认,同时产生两种数组
 84      * */ 
 85     
 86     var_dump(mysqli_fetch_array($set));
 87     var_dump(mysqli_fetch_array($set,MYSQL_ASSOC));
 88     var_dump(mysqli_fetch_array($set,MYSQL_NUM));
 89     
 90     
 91     //返回关联数组
 92     var_dump(mysqli_fetch_assoc($set));
 93     //返回索引数组
 94     var_dump(mysqli_fetch_row($set));
 95     //返回对象
 96     var_dump(mysqli_fetch_object($set));
 97     var_dump(mysqli_fetch_object($set));
 98     
 99 
100     
101     /*    mysqli_data_seek($set,0)
102      *  结果集复位到最开始
103      * */
104     mysqli_data_seek($set,0);
105     var_dump(mysqli_fetch_row($set));
106     var_dump(mysqli_fetch_row($set));
107     
108     /*返回结果集每一列的字段信息。(字段名、表明、数据库名、字段类型、长度等……)    */
109     //var_dump(mysqli_fetch_field($set));
110     
111     //释放查询资源结果集
112     mysqli_free_result($set);
113     
114     //关闭数据库链接
115     mysqli_close($conn);
116     
117 ?>
面向过程

 

2、面向对象
   
① 连接数据库
  
 $conn = @new mysqli("xxx.0.0.x","root","","mydb");
返回连接错误
 
$conn->connect_errno
返回连接信息
  $conn->connect_error
选择数据库
  $conn->select_db("mydb")
⑤ 设置字符集编码
 
$conn->set_charset("utf8")
代码如下:
 1     //连接数据库
 2     $conn = @new mysqli("127.0.0.1","root","","mydb");
 3     
 4     //↓查看连接数据库的返回内容
 5     // var_dump ($conn)
 6     
 7     if($conn->connect_errno){//返回连接错误号。
 8         //↓返回连接错误信息
 9         die("连接失败".$conn->connect_error);
10     }
11         //↓选择数据库
12     $conn->select_db("mydb") or die("选择数据库失败:".$conn->error); 
 //如果出现错误则在页面打印如下:比如在没有mydb1把上表中的mydb改为mydb1,在页面就会出现如下样式

        //↓设置字符集编码
    $conn->set_charset("utf8")    or die("设置字符集失败:".$conn->error);   //↑同上

 1 //准备sql语句
 2     $sql = <<<sql
 3     select * from tb1;
 4 sql;
 5     
 6     // 执行SQL语句,返回结果集或者布尔类型true/false
 7     $res = $conn->query($sql);
 8     var_dump($res);
 9     
10     // 返回结果集中的字段数
11     var_dump($res->field_count);
12     // 返回结果集中的总行数
13     var_dump($res->num_rows);
14     
15     // 返回关联数组和索引数组
16     var_dump($res->fetch_array());
17     // 返回索引数组
18     var_dump($res->fetch_row());
19     // 返回关联数组
20     var_dump($res->fetch_assoc());
21     // 返回一个对象
22     var_dump($res->fetch_object());
23     
24     // 将结果集指针移到指定位置
25     $res->data_seek(0);
26     
27     
28     // 返回结果集中的一个字段,并将指针移到下一列
29     var_dump($res->fetch_field());
30     // 直接返回结果集中的所有字段
31     var_dump($res->fetch_fields());
32     
33     
34     //释放结果集资源
35     $res->close();// $res->free();
36     //关闭数据库连接
37     $conn->close();
⑥⑦⑧⑨⑩

 

 

学习时候的笔记,可能会有一些错误的地方,欢迎各位的批评指点。

反思,复盘,每天收获一点---------------------期待更好的自己

 

posted @ 2017-06-26 23:17  渡劫的机器猫  阅读(834)  评论(14编辑  收藏  举报