zoukankan      html  css  js  c++  java
  • 5月3 数据访问

    数据访问

    方式1:以过时不推荐使用

    造一个连接(即建立通道)
    $db =mysql_connect("localhost","root","1234");
    //$db =mysql_connect("服务器名称","用户名","密码");

    选择要操作哪一个数据库
    mysql_select_db("mydb",$db);//数据库名称,通过哪个通道连接
    //mysql_select_db("数据库名称",连接通道);

    写SQL语句
    $sql = "select * from info";

    执行SQL语句,返回结果集
    $result =mysql_query($sql);

    从结果中取数据
    $row =mysql_fetch_row($result);
    $row1 =mysql_fetch_row($result);//执行第几次就是第几条
    var_dump($row);
    var_dump($row1);

    while($row = mysql_fetch_row($result))
    {
    var_dump($row); //输出全部结果
    }


    方式2:面向对象的方式,非常重要的必须掌握

    造一个连接对象
    $db = new MySQLi("localhost","root","","mydb");
    $db = new MySQLi("服务器名称","用户名","密码","要操作的数据库");

    判断连接是否出错
    1)if(mysqli_connect_error())
    {
    echo "连接失败";
    exit();//退出程序
    }
    2)!mysqli_connect_error() or die("连接失败");
    //mysqli_connect_error()检查错误,!表示逻辑非

    写SQL语句
    $sql = "select *from Info";

    执行SQL语句 查询语句如果执行成功返回结果集对象,如果执行失败返回false
    $result = $db->query($sql);

    从结果集中读取数据
    if($result)
    {
    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());//返回一行数据,对象
    }

    例题:

    以下拉菜单的形式输出Nation表的民族
    <?php

    //造一个连接对象
    $db =new MySQLi("localhost","root","","mydb");

    //判断连接是否有错
    !mysqli_connect_error() or die("连接失败");

    //写SQL语句
    $sql = "select * from Nation";

    //执行SQL语句
    $result =$db->query($sql);

    //从结果集中读取数据
    if($result)
    {
    $attr = $result->fetch_all();
    echo "<select>";

    foreach($attr as $value)
    {
    echo "<option value='{$value[0]}'>{$value[1]}</option>";
    }

    echo "</select>";

    }
    ?>


    作业:把INFO表查出来用表格显示

    <?php


    //造一个连接对象
    $db = new MySQLi("localhost","root","","mydb");
    //判断连接是否有错
    !mysqli_connect_error() or die("连接失败");
    //写SQL语句
    $sql ="select * from Info";
    //执行SQL语句
    $result =$db->query($sql);
    //从结果集中读取数据
    if($result)
    {
    $attr = $result->fetch_all();
    echo "<table width='100%' cellpadding='0' cellspacing='0' border='1'>";
    echo "<tr><td>Code</td><td>Name</td><td>Sex</td><td>Nation</td><td>Birthday</td></tr>";
    foreach($attr as $value)
    {
    echo "<tr><td>{$value[0]}</td><td>{$value[1]}</td><td>{$value[2]}</td><td>{$value[3]}</td><td>{$value[4]}</td></tr>";
    }

    //或是用for的遍历

    for($i=0;$i<count($attr);$i++)
    {
    echo "<tr><td>{$attr[$i][0]}</td><td>{$attr[$i][1]}</td><td>{$attr[$i][2]}</td><td>{$attr[$i][3]}</td><td>{$attr[$i][4]}</td></tr>";
    }

    echo "</table>";
    }

    ?>

    Info表以表格的形式输出,在原有的基础上又进行了完善,主要是针对于性别和民族
    <table width="100%" cellpadding="0" cellspacing="0" border="1">
    <tr>
    <td>代号</td>
    <td>姓名</td>
    <td>性别</td>
    <td>民族</td>
    <td>生日</td>
    </tr>

    <?php
    $db = new MySQLi("localhost","root","","mydb");
    !mysqli_connect_error() or die("连接失败");
    $sql = "select * from Info";
    $result = $db->query($sql);
    $attr = $result->fetch_all();
    if($result)
    {
    foreach($attr as $v)
    {
    //处理性别
    $sex = $v[2]?'男':'女';

    //处理民族
    $sql1 = "select name from Nation where Code ='{$v[3]}'";
    $rnation = $db->query($sql1);
    $attr1 = $rnation->fetch_assoc();

    echo "<tr>
    <td>{$v[0]}</td>
    <td>{$v[1]}</td>
    <td>{$sex}</td>
    <td>{$attr1['name']}</td>
    <td>{$v[4]}</td>
    </tr>";
    }
    }
    ?>
    </table>

  • 相关阅读:
    【转】把VS的智能提示快捷键改成Eclipse的习惯
    论文的写作 —— 参考文献的格式
    论文的写作 —— 参考文献的格式
    OpenMP并行编程应用—加速OpenCV图像拼接算法
    计算广告(computational advertising)
    计算广告(computational advertising)
    开源|LightGBM:三天内收获GitHub 1000+ 星
    Logistic Regression 的简单推导
    Logistic Regression 的简单推导
    在电影里走遍中国
  • 原文地址:https://www.cnblogs.com/Duriyya/p/5458740.html
Copyright © 2011-2022 走看看