PHPMySQL基础(三):处理查询SQL返回的结果集

news2024/10/6 6:50:05

PHP&MySQL基础(一):创建数据库并通过PHP进行连接_长风沛雨的博客-CSDN博客

PHP&MySQL基础(二):通过PHP对MySQL进行增、删、改、查_长风沛雨的博客-CSDN博客

目录

一、连接MySQL,处理错误,统一字符编码

二、查询单条数据,把数据读取成一个关联数组

三、把数据读取成一个索引数组

 四、把查询记录转为索引+关联数组

五、查询记录转为对象


在PHP处理MySQL的增删改查中,增、删、改返回的结果都是布尔值的true和false

但是查询返回的结果是一个【结果集】

这个返回的结果集是可以处理为关联数组、索引数组、对象的形式的


一、连接MySQL,处理错误,统一字符编码

    <?php
      //1、连接数据库
      $link = new mysqli('localhost','root','123456','db_test','3306');
      // var_dump($link);
      //2、错误连接处理
      if($link->connect_error){ # 判断如果link对象里面的异常不为空
       switch($link->connect_error){
           case 1045 : echo " 访问被拒绝,可能用户名或者密码错位";
           break;
           case 1049 : echo " 数据库名称错位";
           break;
           default:break;
        }        
      }else{
        //连接不存在问题,开始处理操作功能
        //3、统一字符编码:使用连接对象自带的query方法执行sql语句,该sql是用来设置字符集编码
        $link->query("SET NAMES utf8");
    }
    ?>

在else分支中,对数据库进行一个查询

        $sql = "SELECT * FROM tb_user WHERE id = 2";
        $res = $link->query($sql);
        var_dump($res);

 

这里是查询到了id为2的数据,返回的结果集显示:共一条数据,有6个字段

如果我们需要使用这些数据,就需要进行一个数据的转换

二、查询单条数据,把数据读取成一个关联数组

查询单条数据,读取成一个关联数组,指针会下移一条数据

这里需要使用到方法

mysqli_fetch_assoc() 

        把查询返回的对象传入方法,返回一个关联数组

        //2.3 查询单条数据,读取成一个关联数组,指针下移一条记录
        //mysqli_fetch_assoc()把查询返回的对象传入该方法,返回一个关联数组
        $row = mysqli_fetch_assoc($res);
        var_dump($row);

 

前面的SQL是查询了id为2的数据,我们可以把这一条数据,通过mysqli_fetch_assoc() 返回一个关联数组(键值对的方式)
PHP 关联数组 (w3schools.cn)icon-default.png?t=N4P3https://www.w3schools.cn/php/php_arrays_associative.asp

如果要使用到这一条数据,可以

echo "用户名字:".$row['userName'].",用户密码:".$row['pwd'];
# 用户名字:CHANG,用户密码:654321

获取关联数组的索引值:数组名['键名']

三、把数据读取成一个索引数组

除了读取成一个关联数组以外,还可以读取成一个【索引数组】,指针同样会向下移动

把一条记录读取成一个索引数组,需要使用到方法:mysqli_fetch_row()

传入的参数同样是查询sql返回的结果集,也就是前面的$res

        $rows= mysqli_fetch_row($res);
        var_dump($rows);

同样是处理前面查询id为2的数据

索引数组的取值,就是:数组[索引值]

尝试输出一下

echo "用户名:".$rows[0].",密码是:".$rows[1];
# 用户名:2,密码是:CHANG

 四、把查询记录转为索引+关联数组

把一条记录读取成一个既可以用索引方式访问,也可以用关联的方式访问的数组,指针下移一条记录(数组长度是记录的字段是的2倍

使用方法:mysqli_fetch_array()

        $rows2 = mysqli_fetch_array($res);
        var_dump($rows2);

长度是记录字段的2倍(感觉这个了解一下就行)

五、查询记录转为对象

把一条记录读取成一个对象,指针下移一条数据

使用到方法:mysqli_fetch_object()

        $rows = mysqli_fetch_object($res);
        var_dump($rows);

 PHP对象的取值:对象->属性

echo "用户名:".$rows->userName.",密码:".$rows->pwd;
# 用户名:CHANG,密码:654321

注意

指针是跟随结果集对象的,所有的fetch方法共用同个指针

也就是上面4个mysqli_fetch的方法,指针都会共用并下移了

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

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

相关文章

面了个4年经验的测试,自动化都不会,真是醉了····

最近面试了一个 4 年测试经验的测试工程师&#xff0c;简历和个人介绍都提到了会自动化&#xff0c;于是我就问了几个自动化方面的问题&#xff1a; 在自动化测试中&#xff0c;你是如何选择和设计测试用例的&#xff1f;你使用过哪些自动化测试工具&#xff0c;如何选择自动化…

从C语言到C++_14(vector的常用函数+相关选择题和OJ题)

目录 1. vector的常用函数 1.1 vector 的介绍 1.2 vector 的初始化 1.3 vector 的操作和遍历 1.4 vector 的容量和增删查改 2. vector 相关笔试题 3. vector 相关OJ题 136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 解析代码&#xff1a; 118. 杨辉…

华为OD机试真题B卷 Java 实现【求解立方根】,附详细解题思路

一、题目描述 计算一个浮点数的立方根&#xff0c;不使用库函数。保留一位小数。 数据范围&#xff1a;∣val∣≤20 。 二、输入描述 待求解参数&#xff0c;为double类型&#xff08;一个实数&#xff09; 三、输出描述 输出参数的立方根。保留一位小数。 四、解题思路…

【九】设计模式~~~结构型模式~~~外观模式(Java)

【学习难度&#xff1a;★☆☆☆☆&#xff0c;使用频率&#xff1a;★★★★★】 4.1. 模式动机 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别&#xff0c;如果是自己泡茶需要自行准备茶叶、茶具和开水&#xff0c;如图1(A)所示&#xff0c;而去茶馆喝茶&#xff0c;最…

从自动化到测开,测试人员逆袭之路从此起步...

在当今竞争激烈的软件测试行业中&#xff0c;近期的招聘市场确实面临一些挑战。大量的求职者争相涌入岗位&#xff0c;许多热衷于功能测试的人士甚至难以找到理想的工作机会。更不幸的是&#xff0c;连自动化测试和性能测试这些专业领域也受到了测试开发人员的竞争压力。然而&a…

jvs-rules 规则引擎-变量管理(函数式)的配置说明

JVS规则引擎变量管理 变量在规则引擎中的作用 数据存储和共享&#xff1a;变量配置允许在规则引擎中存储和访问数据。通过定义变量&#xff0c;可以将数据存储在规则引擎中&#xff0c;使其可供规则和决策过程使用。这样可以消除重复数据存储的需求&#xff0c;提高数据的共享…

ipad手写笔什么牌子好?最好用的电容笔

由于Apple pencil太过昂贵&#xff0c;很多小伙伴想入手一支电容笔&#xff0c;但是国内的品牌众多&#xff0c;不知道该如何挑选出合适自己的电容笔&#xff0c;我们在挑选电容笔要注意一些事项&#xff0c;才能挑选出合适的电容笔&#xff0c;今天给大家总结几个点再给大家介…

如何部署项目到Tomcat + 第一个Servlet程序

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 目录 文章目录 一、Tomcat 1.1 Tomcat是什么 1.2 下载安装 1.3 部署项目 二、第一个Servlet程序 2.1 Servlet是什么 2.2 创建Maven项目 2.3 引入依赖 2.4 创建目录 2.5 编写类方法 2.6 打包…

进程(三)

进程三 2.11 进程同步、进程互斥2.11.1 进程同步2.11.2 进程互斥2.11.3 总结 2.12 进程互斥和软件实现方法2.12.1 单标志法2.12.2 双标志先检查法2.12.3 双标志后检查法2.12.4 Peterson 算法2.12.5 总结 2.13 进程互斥和硬件实现方法2.13.1 中断屏蔽方法2.13.2 TestAndSet 指令…

vue 阻止事件冒泡常用的方法

在 Vue 中&#xff0c;阻止事件冒泡有两种常用方法&#xff1a; 1. 使用 event.stopPropagation() 方法&#xff1a; 在事件处理函数中&#xff0c;可以通过调用事件对象的 stopPropagation() 方法来阻止事件冒泡。例如&#xff1a; html <template> <div click"…

ChatGPT研究框架(2023)

摘要 ChatGPT市场反应热烈&#xff0c;国内外巨头纷纷入场 据统计&#xff0c;ChatGPT日活跃用户数的增速远超Instagram&#xff0c;1月份平均每天有超过1300万名独立访问者使用ChatGPT&#xff0c;是去年12月份的 两倍多&#xff1b;国内外科技巨头都非常重视ChatGPT引发的科…

牛客网DAY2(编程题)

圣诞节来啦&#xff01;请用CSS给你的朋友们制作一颗圣诞树吧~这颗圣诞树描述起来是这样的&#xff1a; 1. "topbranch"是圣诞树的上枝叶&#xff0c;该上枝叶仅通过边框属性、左浮动、左外边距即可实现。边框的属性依次是&#xff1a;宽度为100px、是直线、颜色为gr…

房地产行业IT运维安全就用行云管家堡垒机!

对于房地产行业而言&#xff0c;安全TI运维是构建数字化企业的核心&#xff0c;是推动其业务发展的信息化支撑体系。所以一个靠谱的IT运维安全软件非常重要。不仅可以省时省力&#xff0c;还能保障网络安全&#xff01;这里我给推荐行云管家堡垒机&#xff01; 行云管家公司介…

枚举、反射

枚举 jdk1.5之前&#xff0c;需要自己实现枚举 自己实现枚举 public class StatusEnum {private final String id;private final String code;private final String name;private StatusEnum(String id, String code, String name){this.id id;this.code code;this.name …

使用预训练的 ImageNet 模型进行图像分类

在这篇文章中,我们将学习如何使用预训练的 ImageNet 模型来执行图像分类。我们已经看到了如何训练一个简单的神经网络来对 CIFAR-10 数据集中的图像进行分类,但这是一个相对简单的任务,因为只有十个类别。另一方面,对大量对象类型进行分类将需要包含数百万个参数的更大网络…

华为OD机试真题B卷 Java 实现【字符统计】,附详细解题思路

一、题目描述 输入一个只包含小写英文字母和数字的字符串&#xff0c;按照不同字符统计个数由多到少输出统计结果&#xff0c;如果统计的个数相同&#xff0c;则按照ASCII码由小到大排序输出。 数据范围&#xff1a;字符串长度满足 1≤len(str)≤1000 。 二、输入描述 一个…

图像算法工程师岗位的基本职责范围(合集)

图像算法工程师岗位的基本职责范围 图像算法工程师岗位的基本职责范围1 职责&#xff1a; 图像内容识别、图像纹理优化方面的算法基础研发; 三维模型内容识别、三维模型优化方面的算法研发; 遥感影像处理、内容理解方面的算法研发; 以上1,2,3方面的内容可选择某一项或者多项; 可…

CodeForces..翻转魔术.[简单].[找规律]

题目描述&#xff1a; 题目解读&#xff1a; 给定由0&#xff0c;1组成的长度为n的字符串&#xff0c;执行翻转操作&#xff0c;即0变1&#xff0c;1变0&#xff1b; 判断执行一次翻转之后是否为回文。 解题思路&#xff1a; 寻找规律&#xff1a;如果翻转前已经是回文&…

这里有一个源码调试方法,短小精悍,简单粗暴,但足够好用。

文章中有这样的一段描述&#xff1a; 然后有个读者来问我&#xff1a; 是怎么把 JDK 源码中的一行代码给注释掉的&#xff1f; 这个问题确实不错&#xff0c;属于一个偶尔用一下能起到奇效的源码调试技巧。所以我决定写个文章来说明一下这个问题。 但是这个技巧确实非常的简单…

VS输出路径和生成事件

在生成时&#xff0c;常常希望输出文件夹整洁&#xff0c;因此需要设置dll或exe输出位置&#xff0c;同时也希望对一些文件做一些特殊操作 VS的 UI 常用缩写 “./”&#xff1a;代表目前所在的目录。 " . ./"代表上一层目录。 “/”&#xff1a;代表根目录。 生成…