• 学习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();
    ⑥⑦⑧⑨⑩

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

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

  • 相关阅读:
    Unity3d for beginners
    iOS 8 swift 键盘不出来 ios 8 uitextfield keyboard not appearing
    关于Cookie跨域的问题
    45种Javascript技巧大全
    新.Net架构必备工具列表
    .NET中的六个重要概念:栈、堆、值类型、引用类型、装箱和拆箱
    ASP.NET 大文件下载的实现思路及代码
    理解 .NET 2015
    转:我是否该放弃VB.Net?
    .net中的一般处理程序实例
  • 原文地址:https://www.cnblogs.com/zhuanzhibukaixin/p/7077111.html
Copyright © 2020-2023  润新知