第13章 MySQL 查询数据教程

MySQL database使用SQL SELECT语句来查询数据。

阁下可以通过 mysql> 命令提示窗口中在database中查询数据,或者通过PHP脚本来查询数据。

语法

以下为在MySQLdatabase中查询数据通用的 SELECT 语法:


    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [LIMIT N][ OFFSET M]

  • 查询语句中阁下可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  • SELECT 命令可以读取一条或者多条记录。
  • 阁下可以使用星号(*)来代替其他字段,SELECT语句会return 表的所有字段数据
  • 阁下可以使用 WHERE 语句来包含任何条件。
  • 阁下可以使用 LIMIT 属性来设定return 的记录数。
  • 阁下可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

通过命令提示符获取数据

以下实例咱们将通过 SQL SELECT 命令来获取 MySQL 数据表 liulianjiangcsdn_tbl 的数据:

实例

以下实例将return 数据表 liulianjiangcsdn_tbl 的所有记录:


    读取数据表:
       
    select * from liulianjiangcsdn_tbl;


使用PHP脚本来获取数据

使用 PHP 函数的 mysqli_query() 及 SQL SELECT 命令来获取数据。

该函数用于执行 SQL 命令,然后通过 PHP 函数 mysqli_fetch_array() 来使用或输出所有查询的数据。

mysqli_fetch_array() 函数从结果集中取得一行作为关联数组,或数字数组,或二者兼有 return 根据从结果集取得的行生成的数组,如果没有更多行则return false。

以下实例为从数据表 liulianjiangcsdn_tbl 中读取所有记录。

实例

尝试以下实例来显示数据表 liulianjiangcsdn_tbl 的所有记录。


    使用 mysqli_fetch_array MYSQLI_ASSOC 参数获取数据: 
     
     输出结果如下所示:
     
    
    <?php
    $dbhost = 'localhost';  // mysqlserver 主机地址
    $dbuser = 'root';            // mysql用户名
    $dbpass = '123456';          // mysql用户名password 
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
        die('连接失败: ' . mysqli_error($conn));
    }
    // 设置编码,防止中文乱码
    mysqli_query($conn , "set names utf8");
     
    $sql = 'SELECT liulianjiangcsdn_id, liulianjiangcsdn_title, 
            liulianjiangcsdn_author, submission_date
            FROM liulianjiangcsdn_tbl';
     
    mysqli_select_db( $conn, 'liulianjiangcsdn' );
    $retval = mysqli_query( $conn, $sql );
    if(! $retval )
    {
        die('无法读取数据: ' . mysqli_error($conn));
    }
    echo '<h2>liulianjiangcsdn教程 mysqli_fetch_array 测试</h2>';
    echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
    while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
    {
        echo "<tr><td> {$row['liulianjiangcsdn_id']}</td> ".
             "<td>{$row['liulianjiangcsdn_title']} </td> ".
             "<td>{$row['liulianjiangcsdn_author']} </td> ".
             "<td>{$row['submission_date']} </td> ".
             "</tr>";
    }
    echo '</table>';
    mysqli_close($conn);
    ?>

以上实例中,读取的每行记录赋值给变量 $row,然后再打印出每个值。

**注意:**记住如果阁下需要在字符串中使用变量,请将变量置于花括号。

在上面的例子中,PHP mysqli_fetch_array() 函数第二个参数为 MYSQLI_ASSOC, 设置该参数查询结果return 关联数组,阁下可以使用字段名称来作为数组的索引。

PHP 提供了另外一个函数 mysqli_fetch_assoc(), 该函数从结果集中取得一行作为关联数组。 return 根据从结果集取得的行生成的关联数组,如果没有更多行,则return false。

实例

尝试以下实例,该实例使用了 mysqli_fetch_assoc() 函数来输出数据表 liulianjiangcsdn_tbl 的所有记录:


    使用 mysqli_fetch_assoc 获取数据: 
     
     
    
    <?php
    $dbhost = 'localhost:3306';  // mysqlserver 主机地址
    $dbuser = 'root';            // mysql用户名
    $dbpass = '123456';          // mysql用户名password 
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
        die('连接失败: ' . mysqli_error($conn));
    }
    // 设置编码,防止中文乱码
    mysqli_query($conn , "set names utf8");
     
    $sql = 'SELECT liulianjiangcsdn_id, liulianjiangcsdn_title, 
            liulianjiangcsdn_author, submission_date
            FROM liulianjiangcsdn_tbl';
     
    mysqli_select_db( $conn, 'liulianjiangcsdn' );
    $retval = mysqli_query( $conn, $sql );
    if(! $retval )
    {
        die('无法读取数据: ' . mysqli_error($conn));
    }
    echo '<h2>liulianjiangcsdn教程 mysqli_fetch_assoc 测试</h2>';
    echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
    while($row = mysqli_fetch_assoc($retval))
    {
        echo "<tr><td> {$row['liulianjiangcsdn_id']}</td> ".
             "<td>{$row['liulianjiangcsdn_title']} </td> ".
             "<td>{$row['liulianjiangcsdn_author']} </td> ".
             "<td>{$row['submission_date']} </td> ".
             "</tr>";
    }
    echo '</table>';
    mysqli_close($conn);
    ?>

阁下也可以使用常量 MYSQLI_NUM 作为 PHP mysqli_fetch_array() 函数的第二个参数,return 数字数组。

实例

以下实例使用 MYSQLI_NUM 参数显示数据表 liulianjiangcsdn_tbl 的所有记录:


    使用 mysqli_fetch_array MYSQLI_NUM 参数获取数据: 
     
     
    <?php
    $dbhost = 'localhost:3306';  // mysqlserver 主机地址
    $dbuser = 'root';            // mysql用户名
    $dbpass = '123456';          // mysql用户名password 
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
        die('连接失败: ' . mysqli_error($conn));
    }
    // 设置编码,防止中文乱码
    mysqli_query($conn , "set names utf8");
     
    $sql = 'SELECT liulianjiangcsdn_id, liulianjiangcsdn_title, 
            liulianjiangcsdn_author, submission_date
            FROM liulianjiangcsdn_tbl';
     
    mysqli_select_db( $conn, 'liulianjiangcsdn' );
    $retval = mysqli_query( $conn, $sql );
    if(! $retval )
    {
        die('无法读取数据: ' . mysqli_error($conn));
    }
    echo '<h2>liulianjiangcsdn教程 mysqli_fetch_array 测试</h2>';
    echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
    while($row = mysqli_fetch_array($retval, MYSQLI_NUM))
    {
        echo "<tr><td> {$row[0]}</td> ".
             "<td>{$row[1]} </td> ".
             "<td>{$row[2]} </td> ".
             "<td>{$row[3]} </td> ".
             "</tr>";
    }
    echo '</table>';
    mysqli_close($conn);
    ?>

以上三个实例输出结果都一样。


内存释放

在咱们执行完 SELECT 语句后,释放游标内存是一个很好的习惯。

可以通过 PHP 函数 mysqli_free_result() 来实现内存的释放。

以下实例演示了该函数的使用方法。

实例

尝试以下实例:


    使用 mysqli_free_result 释放内存: 
      
    
    <?php
    $dbhost = 'localhost:3306';  // mysqlserver 主机地址
    $dbuser = 'root';            // mysql用户名
    $dbpass = '123456';          // mysql用户名password 
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
        die('连接失败: ' . mysqli_error($conn));
    }
    // 设置编码,防止中文乱码
    mysqli_query($conn , "set names utf8");
     
    $sql = 'SELECT liulianjiangcsdn_id, liulianjiangcsdn_title, 
            liulianjiangcsdn_author, submission_date
            FROM liulianjiangcsdn_tbl';
     
    mysqli_select_db( $conn, 'liulianjiangcsdn' );
    $retval = mysqli_query( $conn, $sql );
    if(! $retval )
    {
        die('无法读取数据: ' . mysqli_error($conn));
    }
    echo '<h2>liulianjiangcsdn教程 mysqli_fetch_array 测试</h2>';
    echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
    while($row = mysqli_fetch_array($retval, MYSQLI_NUM))
    {
        echo "<tr><td> {$row[0]}</td> ".
             "<td>{$row[1]} </td> ".
             "<td>{$row[2]} </td> ".
             "<td>{$row[3]} </td> ".
             "</tr>";
    }
    echo '</table>';
    // 释放内存
    mysqli_free_result($retval);
    mysqli_close($conn);
    ?>

本专栏所有文章

第1章 MySQL 教程第2章 MySQL 安装教程
第3章 MySQL 管理教程第4章 MySQL PHP 语法教程
第5章 MySQL 连接教程第6章 MySQL 创建数据库教程
第7章 MySQL 删除数据库教程第8章 MySQL 选择数据库教程
第9章 MySQL 数据类型教程第10章 MySQL 创建数据表教程
第11章 MySQL 删除数据表教程第12章 MySQL 插入数据教程
第13章 MySQL 查询数据教程第14章 MySQL WHERE 子句教程
第15章 MySQL UPDATE 更新教程第16章 MySQL DELETE 语句教程
第17章 MySQL LIKE 子句教程第18章 MySQL UNION教程
第19章 MySQL 排序教程第20章 MySQL 分组教程
第21章 MySQL 连接的使用教程第22章 MySQL NULL 值处理教程
第23章 MySQL 正则表达式教程第24章 MySQL 事务教程
第25章 MySQL ALTER命令教程第26章 MySQL 索引教程
第27章 MySQL 临时表教程第28章 MySQL 复制表教程
第29章 MySQL 元数据教程第30章 MySQL 序列使用教程
第31章 MySQL 处理重复数据教程第32章 MySQL 及 SQL 注入教程
第33章 MySQL 导出数据教程第34章 MySQL 导入数据教程
第35章 MySQL 函数教程第36章 MySQL 运算符教程

寄语

本文有榴莲酱CSDN原创,欢迎点赞、转载,博客地址:https://blog.csdn.net/qq441540598

  • 要相信:洒下的辛勤汗水,必将浇灌出参天大树;闪烁的智慧火花,必将点燃万盏明灯;回荡的欢声笑语,必将融化千难万苦。对自己说"我能行",我一定行。我们坚信:现在的差距是昨天的结果,而今日的汗水必将摧开明朝的花朵。
  • 我们已经误入其中,但并没有真正属于那个世界。
  • 人啊,就是没什么想要有什么,有什么不珍惜什么,失去什么才明白什么,明白什么也挽回不了什么了。
  • 记得读书的时候,一位老师曾说过:“要想规则公平,就要努力成为制定规则的那个人。”
  • 真正的艺术家总是冒着危险去推到一切既存的偏见,而表现他自己所想到的东西。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

榴莲酱csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值