• 数据访问


    //方式一: 用函数的方式访问 (已过时,了解即可)
    
    1.造一个连接(建立通道)
    
    $db=mysql_connect("localhost","root","123");//参数为服务器地址,用户名,密码
    
    2.选择要操作哪一个数据库
    
    mysql_select_db("mydb");
    
    3.写SQL语句
    
    $sql="select * from Info";
    
    4.执行SQL语句
    
    $result = mysql_query($sql); //返回结果集
    
    5.从结果集中读取数据
    
    $row =mysql _fetch_row($result); //取第一条数据
    
    var_dump($row);
    
    //取所有数据
    
    while($row=mysql_fetch_row())
    
    {
    
      var_dump($row);
    
    }
    
    //方式二:面向对象的方式              *****非常重要,必须熟练*****
    1.造一个连接对象
    
    $db = new MySQLi("localhost","root","123","mydb");//参数为服务器地址,用户名,密码,数据库名
    
    2.判断是否出错
    
    方法1:
    
    if(mysqli_connect_error())
    
    {
    
      exit("连接失败!");    //退出程序,并输出"连接失败!"
    
    }    //若出错则直接退出整个程序,所以不用写else
    
    方法2:
    
    !mysqli_connect_error() or die("连接失败!");
    
    3.写SQL语句
    
    $sql = "select * from Info";
    
    4.执行SQL语句,查询语句若执行成功则返回结果集对象,若失败则返回false
    
    $result = $db->query($sql);
    
    5.从结果集中读取数据       //读取数据方式不同,取值方式也不同
    
    if($result)      //判断$result是true还是false,若不判断,当$result为false时会报错
    
    {
    
      var_dump($result->fetch_row());     //返回一行数据的数组(索引数组)
    
      while($row=$result->fetch_row())    //取所有数据
    
      {
    
        var_dump($row);
    
      }
    
      var_dump($result->fetch_assoc());  //返回一行数据(关联数组)
    
      var_dump($result->fetch_all());       //返回所有数据(二维数组)
    
      var_dump($result->fetch_object()); //返回一行数据(对象)
    
    }
    
    若SQL语句为:
    
    $sql = "select count(*) from Info";
    
    $result = $db->query($sql);      //结果集为一个整型值
    
    if($result)
    
    {
    
      //用fetch_all()读取:
    
      $shuju = $result->fetch_all();       //返回只有一个数的二维数组,这个数存储在二维数组的第一行第一列,即$shuju[0][0]  
    
      echo $shuju[0][0];
    
      //用fetch_row()读取:
    
      $shuju = $result->fetch_row();    //返回只有一个数的一维数组
    
      echo $shuju[0];
    
    }
    
    //若SQL语句为增,删,改,则不用读取数据,只需判断是否执行成功,如果执行成功执行什么操作,如果执行失败,执行什么操作.例如:
    
    $sql = "insert into Info values('p001','','','','')";
    
    $result= $db->query($sql);
    
    var_dump($result);    //若执行成功返回true,若执行失败返回false

    练习:

    1. 将Nation表以下拉列表的形式显示在网页上

    $db=new MySQLi("localhost","root","123","mydb");
    !mysqli_connect_error() or die("连接失败!");
    $sql="select * from Nation";
    $result=$db->query($sql);
    if($result)
    {
    $a=$result->fetch_all();
    echo "<select>";
    foreach($a as $v)
    {
    echo "<option value='{$v[0]}'>{$v[1]}</option>";
    }
    echo "</select>";
    } 

    2. 将Info表以表格的形式显示在网页上

    $db=new MySQLi("localhost","root","123","mydb");
    !mysqli_connect_error() or die("连接失败!");
    $sql = "select * from Info";
    $r = $db->query($sql);
    if($r)
    {
    $attr = $r->fetch_all();
    echo "<table width='100%' border='1' cellpadding='0' cellspacing='0'>";
    echo "<tr>
    <td>代码</td>
    <td>姓名</td>
    <td>性别</td>
    <td>民族</td>
    <td>生日</td>
    </tr>";
    foreach($attr as $v)
    {
    echo "<tr>
    <td>{$v[0]}</td>
    <td>{$v[1]}</td>
    <td>{$v[2]}</td>
    <td>{$v[3]}</td>
    <td>{$v[4]}</td>
    </tr>";
    }
    echo "</table>";
    }

    //将性别与民族显示出来:
    
    性别对应$v[2],民族对应$v[3].
    
    处理性别:$sex=$v[2]?"男":"女";
    
    将表格中$v[2]换为$sex
    
    处理民族名称:
    
    $sqln="select Name from Nation where Code='{$v[3]}'";
    
    $result=$db->query($sqln);
    
    $attrn=$result->fetch_assoc(); //关联数组
    
    将表格中$v[3]换为$attrn['Name']
    foreach($attr as $v)
        {
            //处理性别
            $sex=$v[2]?"男":"女";
            //处理民族名称
            $sqln="select Name from Nation where Code='{$v[3]}'";
            $rnation = $db->query($sqln);
            $attrn = $rnation->fetch_assoc();
            echo "<tr>
                    <td>{$v[0]}</td>
                    <td>{$v[1]}</td>
                    <td>{$sex}</td>
                    <td>{$attrn['Name']}</td>
                    <td>{$v[4]}</td>
                 </tr>";
        }

  • 相关阅读:
    cpp:博文_注意
    Algs4-1.2(非习题)String
    Algs4-1.2(非习题)几何对象中的一个2D用例
    Algs4-1.2.19字符串解析
    Algs4-1.2.18累加器的方差
    Algs4-1.2.17有理数实现的健壮性
    Algs4-1.2.16有理数
    Algs4-1.2.15基于String的split()的方法实现In中的静态方法readInts()
    Algs4-1.2.13实现Transaction类型
    Algs4-1.2.14实现Transaction中的equals()方法
  • 原文地址:https://www.cnblogs.com/xinghun/p/5458299.html
Copyright © 2020-2023  润新知