入门PHP就来我这(高级)12 ~ 获取数据

news2024/11/22 16:22:33
有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享
路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。


1 从结果集中获取一行作为对象

表中数据行如下:

利用mysqli_fetch_array()函数获取结果集中的数据,获取的是所有的数据行,上篇文章已经介绍了。本篇介绍一个新的函数:mysqli_fetch_object()可以轻松的获取一行数据作为对象,语法如下:

//返回一个对象而不是一个数组,该函数通过字段名来访问数组
mixed mysqli_fetch_object(resource result)
//访问结果集行中元素的语法如下:
$row->col_name  //col_name 为字段名, $row代表结果集

接下来看下如何在案例中使用(展示核心代码):

<tbody>
                            <?php while($obj = mysqli_fetch_object($result)){ 
                               if(is_object($obj)){ //判断对象是否存在    
                            ?>

                                <tr>
                                    <td class="table-text">
                                        <?php echo $obj->id ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $obj->name ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $obj->category ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $obj->price ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $obj->publish_time ?>
                                    </td>
                                    <td>
                                        <a href="editBook.php?id=<?php echo $obj->id ?>">
                                            <button class="btn btn-info edit">编辑</button>
                                        </a>
                                        <a href="deleteBook.php?id=<?php echo $obj->id ?>">
                                            <button class="btn btn-danger delete">删除</button>
                                        </a>
                                        
                                    </td>
                                </tr>
                            <?php }
                             } ?>
                        </tbody>

 2 从结果集中获取一行作为枚举数组

mysqli_fetch_row()函数可以从结果集中取得一行作为枚举数组,即数组的键用数字索引来表示。

mixed mysqli_fetch_row(resource $result)

该函数返回根据所取得的行生成的数组,如果没有更多行则返回null。返回数组的偏移量从0开始,即以$row[0]的形式访问第一个元素(只有一个元素时也是如此)。

接下来看下如何在案例中使用(展示核心代码):

<tbody>
                            <?php while($rows = mysqli_fetch_row($result)){ 
                              
                            ?>

                                <tr>
                                    <td class="table-text">
                                        <?php echo $rows[0] ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $rows[1] ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $rows[2] ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $rows[3] ?>
                                    </td>
                                    <td class="table-text">
                                        <?php echo $rows[4] ?>
                                    </td>
                                    <td>
                                        <a href="editBook.php?id=<?php echo $rows[0] ?>">
                                            <button class="btn btn-info edit">编辑</button>
                                        </a>
                                        <a href="deleteBook.php?id=<?php echo $rows[0] ?>">
                                            <button class="btn btn-danger delete">删除</button>
                                        </a>
                                        
                                    </td>
                                </tr>
                            <?php 
                             } ?>
                        </tbody>

  3 获取查询结果集中的记录数

//语法如下
int mysqli_num_rows(resource $result)

注意:该函数只对select语句有效,要取得被insert、update或者delete语句所影响到的行数,则要使用mysqli_affected_rows()函数。

 在index.php里设置mysqli_num_rows()函数统计行数,在lists.html里显示行数:

<?php
 $dbName = 'db_test';
 $link = mysqli_connect('localhost','root','passwd');

 if(mysqli_select_db($link,$dbName)) {
    
    $result = mysqli_query($link,"select * from books");
    $numRows = mysqli_num_rows($result);
    
    include_once('lists.html');
  
 } else{
  echo $dbName."未连接!";
 }
?>

在</table>下面添加一行: 

<p class="text-primary text-center">共计 <?php echo $numRows ?> 条</p>

 效果如下:

  4 释放内存

数据库操作完后,需要关闭结果集,以释放系统资源,采用mysqli_free_result()函数释放内存。语法如下:

void mysqli_free_result(resource $result)

注意:mysqli_free_result()函数将释放所有与结果符$result相关联的内存。该函数仅需要在考虑到返回很大的结果集会占用较多内存时调用。在执行结束后所有关联的内存都会被自动释放。

 5 关闭连接(数据库连接)

完成数据库的操作后,要及时断开与数据库的连接并释放内存,否则会浪费大量的内存空间,在访问量较大的Web项目中,很可能导致服务器崩溃。在MySQL数据库中,使用mysqli_close()函数断开与MySQL服务器的连接,语法如下:

bool mysqli_close(mysqli $link)
<?php
 $dbName = 'db_test';
 $link = mysqli_connect('localhost','root','passwd');

 if(mysqli_select_db($link,$dbName)) {
    
    $result = mysqli_query($link,"select * from books");
    $numRows = mysqli_num_rows($result);
    
    include_once('lists.html');
    //释放内存
    mysqli_free_result($result);
    //关闭Mysql服务器连接
    mysqli_close($link);
  
 } else{
  echo $dbName."未连接!";
 }
?>

下篇 PHP 结合数据库实现图书信息管理小案例


大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。

另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,代码,以及兼职项目等交流,欢迎大家加入一起交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SLF4J的介绍与使用(有logback和log4j2的具体实现案例)

目录 1.日志门面的介绍 常见的日志门面 &#xff1a; 常见的日志实现&#xff1a; 日志门面和日志实现的关系&#xff1a; 2.SLF4J 的介绍 业务场景&#xff08;问题&#xff09;&#xff1a; SLF4J的作用 SLF4J 的基本介绍 日志框架的绑定&#xff08;重点&#xff09…

【CSS in Depth 2精译】2.5 无单位的数值与行高

当前内容所在位置 第一章 层叠、优先级与继承第二章 相对单位 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高 ✔️2.6 自定义属性2.7 本章小结 2.5 无单位的数值与行高 有些属性允许使用无单位的数值&#xff08;unitless value…

Linux:DHCP服务配置

目录 一、DHCP概述以及DHCP的好处 1.1、概述 1.2、DHCP的好处 二、DHCP的模式与分配方式 2.1、模式 2.2、DHCP的分配方式 三、DHCP工作原理 四、安装DHCP服务 五、DHCP局部配置并且测试 5.1、subnet 网段声明 5.2、客户机预留指定的固定ip地址 一、DHCP概述以及DHCP…

【Java13】包

“包”这个机制&#xff0c;类似于分组。主要作用是区分不同组内的同名类。例如&#xff0c;高三三班有一个“王五”&#xff0c;高二八班也有一个“王五”。高三三班和高三八班就是两个不同的包。 Java中的包&#xff08;package&#xff09;机制主要提供了类的多层命名空间&…

驾校管理系统设计

驾校管理系统设计旨在提高驾校运营效率、学员管理、教练安排、考试预约、财务结算等方面的能力。以下是一个基本的设计框架&#xff0c;包括关键模块和数据表设计&#xff1a; 1. 系统架构设计 前端界面&#xff1a;提供给学员、教练和管理员使用的Web界面或移动应用&#xf…

51单片机STC89C52RC——16.1 五项四线步进电机

目的/效果 让步进电机 正向转90度&#xff0c;逆向转90度 一&#xff0c;STC单片机模块 二&#xff0c;步进电机 2.2 什么是步进电机&#xff1f; 步进电机可以理解为&#xff1a;是一个按照固定步幅运动的“小型机器”。它与普通电机不同点在于&#xff0c;普通电机可以持…

插入排序——C语言

假设我们现在有一个数组&#xff0c;对它进行排序&#xff0c;插入排序的算法如同它的名字一样&#xff0c;就是将元素一个一个插入到合适的位置&#xff0c;那么&#xff0c;该如何做呢&#xff1f; 如果我们要从小到大进行排序的话&#xff0c;步骤如下&#xff1a; 1.对于…

WAWA鱼曲折的大学四年回忆录

声明&#xff1a;本文内容纯属个人主观臆断&#xff0c;如与事实不符&#xff0c;请参考事实 前言&#xff1a; 早想写一下大学四年的总结了&#xff0c;但总是感觉无从下手&#xff0c;不知道从哪里开始写&#xff0c;通过这篇文章主要想做一个记录&#xff0c;并从现在的认…

大数据之路 读书笔记 Day4 数据同步

回顾&#xff1a; Day 3 总结了无限客户端的日志采集 大数据之路 读书笔记 Day 3Day 2总结了浏览器端的日志采集 大数据之路 读书笔记 Day 2 数据同步 阿里数据体系中的数据同步&#xff0c;主要指的是在不同的数据存储系统之间进行数据的传输与更新&#xff0c;以保证数据的一…

自用款 复制粘贴工具 Paste macOS电脑适配

Paste是一款专为Mac和iOS用户设计的剪贴板管理工具&#xff0c;它提供了强大的剪贴板增强功能。Paste能够实时记录用户复制和剪切的内容&#xff0c;包括文本、图片、链接等多种数据类型&#xff0c;并形成一个可视化的剪贴板历史记录&#xff0c;方便用户随时访问和检索。此外…

【密码学】密码学中的四种攻击方式和两种攻击手段

在密码学中&#xff0c;攻击方式通常指的是密码分析者试图破解加密信息或绕过安全机制的各种策略。根据密码分析者对明文、密文以及加密算法的知识程度&#xff0c;攻击可以分为以下四种基本类型&#xff1a; 一、四种攻击的定义 &#xff08;1&#xff09;唯密文攻击(COA, C…

蚂蚁全媒体总编刘鑫炜谈新媒体时代艺术家如何创建及提升个人品牌

新媒体时代艺术家如何创建及提升个人品牌形象——专访蚂蚁全媒体总编刘鑫炜 图为蚂蚁全媒体总编刘鑫炜 在新媒体风潮席卷全球的今天&#xff0c;传统艺术与新媒体技术的融合越来越紧密。这种变革不仅改变了艺术作品的呈现方式&#xff0c;也给艺术家们提供了更多的可能性。那么…

python 10个自动化脚本

目录 &#x1f31f; 引言 &#x1f4da; 理论基础 &#x1f6e0;️ 使用场景与代码示例 场景一&#xff1a;批量重命名文件 场景二&#xff1a;自动下载网页内容 场景三&#xff1a;数据清洗 场景四&#xff1a;定时执行任务 场景五&#xff1a;自动化邮件发送 场景六…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十二)-管道、环境变量、常用命令

大致介绍了一下管道、环境变量、一些常用的基本命令&#xff0c;可以当作学习笔记收藏学习一下&#xff01;&#xff01;&#xff01; 文章目录 前言 一、管道 二、环境变量 1.概念 2.查看 3.修改 4.常用环境变量 三、系统状况 总结 前言 大致介绍了一下管道、环境变量、一些常…

【因果推断】优惠券政策对不同店铺的影响

这次依然是用之前rossmann店铺竞赛的数据集。 之前的数据集探索处理在这里已经做过了&#xff0c;此处就不再赘述了CSDN链接 数据集地址&#xff1a;竞赛链接 这里探讨数据集中Promo2对于每家店铺销售额的影响。其中&#xff0c;Promo2是一个基于优惠券的邮寄活动&#xff0c;发…

ZYNQ-LINUX环境C语言利用Curl库实现HTTP通讯

前言 在Zynq-Linux环境中&#xff0c;需要使用C语言来编写APP时&#xff0c;访问HTTP一般可以使用Curl库来实现&#xff0c;但是在Zynq的SDK中&#xff0c;并没有集成该库&#xff0c;在寻找了很多资料后找到了一种使用很方便的额办法。这篇文章主要记录一下移植Curl的过程。 …

将iStoreOS部署到VMware ESXi变成路由器

正文共&#xff1a;888 字 19 图&#xff0c;预估阅读时间&#xff1a;1 分钟 前面把iStoreOS部署到了VMware workstation上&#xff08;将iStoreOS部署到VMware Workstation&#xff09;。如果想把iStoreOS直接部署到ESXi上&#xff0c;你会发现转换镜像不能直接生成OVF或者OV…

Redis源码整体结构

一 前言 Redis源码研究为什么先介绍整体结构呢?其实也很简单,作为程序员的,要想对一个项目有快速的认知,对项目整体目录结构有一个清晰认识,有助于我们更好的了解这个系统。 二 目录结构 Redis源码download到本地之后,对应结构如下: 从上面的截图可以看出,Redis源码一…

【2024_CUMCM】T检验、F检验、卡方检验

T检验 T检验主要用于比较两组数据的均值差异&#xff0c;适用于小样本数据分析。它可以分为单样本T检验、独立样本T检验和配对样本T检验。 单样本T检验用于比较一个样本与已知的总体均值差异&#xff0c;独立样本T检验用于比较两个独立样本的均值差异&#xff0c;配对样本T检…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程&#xff08;参照京东&#xff09;代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…