入门PHP就来我这(高级)18 ~ 获取结果集

有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 

 


 1 PDO中获取结果集

在PDO中获取结果集常用3中方法:fetch()方法、fetchAll()方法和fetchColumn()方法。

1.1 fetch()方法

fetch()方法可以获取结果集中的下一行记录,其语法格式如下:

mixed PDOStatement::fetch([int $fetch_style [,int $cursor_orientation [,int $cursor_offset]]]);

其中,参数fetch_style是控制结果集的返回方式,其可选方式如下表所示:

其中cursor_orientation是PDOStatement对象的滚动游标,可用于获取指定的一行。

参数cursor_offset:游标的偏移量。 

 案例:使用fetch()方法获取会员列表:

创建数据库表member:

drop table if exists `member`;
create table `member`(
`id` int(8) not null auto_increment,
`nickname` varchar(200) not null,
`email` varchar(200) default null,
`phone` varchar(11) default null,
`level` char(10) default null,
primary key (`id`)
)engine=MyISAM auto_increment=1 default charset=utf8;insert into `member` values('1','路飞','lufei@163.com','13011111111','A');
insert into `member` values('2','索隆','suolong@163.com','13022222222','B');
insert into `member` values('3','娜美','namei@163.com','13033333333','C');
insert into `member` values('4','山治','shanzhi@163.com','13044444444','D');

创建index.php逻辑层查询数据库数据。


<?phprequire "config.php";try{//实例化PDO对象,采用new的方式$pdo = new PDO(DB_DSN,DB_USER,DB_PWD);} catch (PDOException $th) {echo $th->getMessahe()."<br>";}$sql = 'select * from member';$result = $pdo->prepare($sql);$result->execute();include_once('lists.html');
?>

 其中的config.php配置的是数据库的基本信息,内容如下:

<?phpdefine('DB_HOST','localhost');define('DB_USER','root');define('DB_PWD','passwd');define('DB_NAME','db_test');define('DB_PORT','3306');define('DB_TYPE','mysql');define('DB_CHARSET','utf8');define('DB_DSN',"mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);
?>

我们要显示到页面上,创建页面html文件,命名为lists.html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>会员列表</title><link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet"></head>
<body><div class="container"><div class="col-sm-offset-2 col-sm-8"><div class="panel panel-default"><div class="panel-heading">大V的会员列表</div><div class="panel-body"><table class="table table-striped task-table"><thead><tr><th>ID</th><th>昵称</th><th>邮箱</th><th>电话</th><th>等级</th><th>操作</th></tr></thead><tbody><?php while($row=$result->fetch(PDO::FETCH_ASSOC)) { ?><tr><td class="table-text"><?php echo $row['id'] ?></td><td class="table-text"><?php echo $row['nickname'] ?></td><td class="table-text"><?php echo $row['email'] ?></td><td class="table-text"><?php echo $row['phone'] ?></td><td class="table-text"><?php echo $row['level'] ?></td><td><button class="btn btn-info edit">编辑</button><button class="btn btn-danger delete">删除</button></td></tr><?php } ?></tbody></table></div></div></div></div></body>
</html>

运行http://域名/index.php结果如下:

1.2 fetchAll()方法 

fetchAll()方法可以获取结果集中的所有行。语法格式如下:

array PDOStatement::fetchAll ([int $fetch_style[,int $column_index]]);
//fetch_style 控制结果集中数据的显示方式
//column_index 字段的索引
//返回值是一个包含结果集中所有数据的二维数组。

案例:我们利用fetchAll()获取大V会员的列表:

此时需要改变的地方就是index.php的逻辑和lists.html遍历逻辑。

<?phprequire "config.php";try{//实例化PDO对象,采用new的方式$pdo = new PDO(DB_DSN,DB_USER,DB_PWD);} catch (PDOException $th) {echo $th->getMessahe()."<br>";}$sql = 'select * from member';$result = $pdo->prepare($sql);$result->execute();$data = $result->fetchAll(PDO::FETCH_ASSOC);//获取全部数据include_once('lists.html');
?>

lists.html里需要改变的唯一地方就是:

 结果不变:

1.3 fetchColumn()方法  

fetchColumn()方法可以获取结果集中下一行指定列的值。语法如下:

string PDOStatement::fetchColumn([int $column_number]);
//column_number是列的索引值,该值从0开始。如果省略该参数则从第一列开始取值。

案例:我们使用该方法获取大V会员列表的会员名。

index.php逻辑改变如下:

<?phprequire "config.php";try{//实例化PDO对象,采用new的方式$pdo = new PDO(DB_DSN,DB_USER,DB_PWD);} catch (PDOException $th) {echo $th->getMessahe()."<br>";}$sql = 'select nickname from member';$result = $pdo->prepare($sql);$result->execute();include_once('lists.html');
?>

lists.html里的改变如下:

<tbody><tr><td class="table-text"><?php echo $result->fetchColumn() ?></td></tr><tr><td class="table-text"><?php echo $result->fetchColumn() ?></td></tr><tr><td class="table-text"><?php echo $result->fetchColumn() ?></td></tr><tr><td class="table-text"><?php echo $result->fetchColumn() ?></td></tr><tr><td class="table-text"><?php echo $result->fetchColumn() ?></td></tr></tbody>

结果展示如下:

下一篇 PDO捕获sql错误


大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。
另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,源代码,以及兼职项目等交流,欢迎大家加入一起交流。

 

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

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

相关文章

两位软件工程师创业,开发出一款软件质量保证自主AI代理,融资总额超3000万美元

编译整理&#xff5c;TesterHome社区 来源&#xff5c;TechCrunch 随着生成式人工智能&#xff08;generative AI&#xff09;的出现&#xff0c;人工智能应用正在改变和重塑各行各业&#xff0c;并改变人们的工作方式。软件开发也不例外。 总部位于旧金山和东京的初创公司Aut…

算法学习笔记(8.2)-动态规划入门进阶

目录 问题判断: 问题求解步骤&#xff1a; 图例&#xff1a; 解析&#xff1a; 方法一&#xff1a;暴力搜索 实现代码如下所示&#xff1a; 解析&#xff1a; 方法二&#xff1a;记忆化搜索 代码示例&#xff1a; 解析&#xff1a; 方法三&#xff1a;动态规划 空间…

C++进阶:继承和多态

文章目录 ❤️继承&#x1fa77;继承与友元&#x1f9e1;继承和静态成员&#x1f49b;菱形继承及菱形虚拟继承&#x1f49a;继承和组合 ❤️多态&#x1fa77;什么是多态&#xff1f;&#x1f9e1;多态的定义以及实现&#x1f49b;虚函数&#x1f49a;虚函数的重写&#x1f499…

MySQL之基本查询(上)-表的增删查改

目录 Create(创建) 案例建表 插入 单行数据 指定列插入 单行数据 全列插入 多行数据 全列插入 插入是否更新 插入时更新 替换 Retrieve(读取) 建表插入 select列 全列查询 指定列查询 查询字段为表达式 为查询结果指定别名 结果去重 where条件 比较运算符 逻辑运…

【深度学习基础】MacOS PyCharm连接远程服务器

目录 一、需求描述二、建立与服务器的远程连接1. 新版Pycharm的界面有什么不同&#xff1f;2. 创建远程连接3. 建立本地项目与远程服务器项目之间的路径映射4.设置保存自动上传文件 三、设置解释器总结 写在前面&#xff0c;本人用的是Macbook Pro&#xff0c; M3 MAX处理器&am…

opencv读取视频文件夹内视频的名字_时长_帧率_分辨率写入excel-cnblog

看视频的时候有的视频文件名贼长。想要翻看&#xff0c;在文件夹里根本显示不出来&#xff0c;缩短又会丢失一些信息&#xff0c;所以我写了一份Python代码&#xff0c;直接获取视频的名字&#xff0c;时长&#xff0c;帧率&#xff0c;还有分辨率写到excel里。 实际效果如下图…

uniapp父页面调用子页面 组件方法记录

文章目录 导文如何点击父页面&#xff0c;触发子页面函数先写一个子页面的基础内容父元素 如何点击父页面&#xff0c;修改子页面的值先写一个子页面的基础内容父元素 导文 如何点击父页面&#xff0c;触发子页面函数&#xff1f; 如何点击父页面&#xff0c;修改子页面的值&am…

Java基础语法--基本数据类型

Java基础语法–基本数据类型 Java是一种静态类型语言&#xff0c;这意味着每个变量在使用前都必须声明其数据类型。Java提供了多种基本数据类型&#xff0c;用于存储整数、浮点数、字符和布尔值等。以下是Java中的基本数据类型及其特点&#xff1a; 1. 整型&#xff08;Integ…

offer题目33:判断是否是二叉搜索树的后序遍历序列

题目描述&#xff1a;输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。例如&#xff0c;输入数组{5,7,6,9,11,10,8},则返回true,&#xff0c;因为这个整数是下图二叉搜索树…

如何从 Vue 2 无痛升级到 Vue 3,一文搞定!

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 随着 Vue 3 的发布,许多开发者都面临着从 Vue 2 升级到 Vue 3 的挑战。 本文将详细介绍如何从 Vue 2 无痛升级到 Vue 3,包括每个步骤的详细说明与代码示例。 让我们开始吧! 准备工作 在正式开始升级之前,请确保你已经…

C基础day7

一、思维导图 二、课后练习 1、提示并输入一个字符串&#xff0c;统计该字符串中字母、数字、空格以及其他字符的个数 #include<myhead.h> #define M 20 int main(int argc, const char *argv[]) {int sum_a0,sum_b0,sum_c0,sum_d0;char str[M];printf("please en…

使用redis进行短信登录验证(验证码打印在控制台)

使用redis进行短信登录验证 一、流程1. 总体流程图2. 流程文字讲解&#xff1a;3.代码3.1 UserServiceImpl&#xff1a;&#xff08;难点&#xff09;3.2 拦截器LoginInterceptor&#xff1a;3.3 拦截器配置类&#xff1a; 4 功能实现&#xff0c;成功存入redis &#xff08;黑…

HTML5+CSS3小实例:响应式漫画网格布局

实例:响应式漫画网格布局 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-sc…

Windows11配置WSL2支持代理上网

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装WSL2分发版二、配置步骤三、测试总结 前言 说起来本来这个功能我也不需要的&#xff0c;只是最近突然有个需求就顺便研究了下&#xff0c;WSL2默认的网…

Docker-compse的应用

1 docker-compose # 使用了docker 面临一个比较大的问题&#xff0c;如果一个djagno项目&#xff0c;使用mysql&#xff0c;redis&#xff0c;不要一次性把所有服务都放到一个容器中&#xff0c;每个服务一个容器&#xff0c;批量的管理多个容器&#xff0c;比较难以操作&…

KIVY Button¶

Button — Kivy 2.3.0 documentation Button Jump to API ⇓ Module: kivy.uix.button Added in 1.0.0 The Button is a Label with associated actions that are triggered when the button is pressed (or released after a click/touch). To configure the button, the s…

vue 切换主题色切换主题色切换主题色切换主题色切换主题色

第一种&#xff1a;使用CSS变量 CSS变量&#xff08;Custom Properties&#xff09;是CSS的一种新特性 1.实现需求&#xff1a;自定义颜色 定义变量 全局的theme.css :root {--primary-color:red; }在组件中使用这些变量 demo.vue <template><div class"main…

Adversarial Reweighting for Partial Domain Adaptation(论文阅读)

摘要 1、问题 通过实验发现如今的PDA方法在利用重新调整对齐分布来使适应特征对于源域数据的“噪声”权重&#xff0c;在很多挑战基准测试点上会导致域的负迁移。 2、目的 对抗性调整&#xff08;AR&#xff09;方法&#xff1a;对抗性学习源域数据的权重去对齐源域和目标域的…

SVM - 径向基函数核 Radial Basis Function Kernel,简称RBF核或者高斯核

SVM - 径向基函数核 Radial Basis Function Kernel&#xff0c;简称RBF核或者高斯核 flyfish 径向基函数核&#xff08;Radial Basis Function Kernel&#xff0c;简称RBF核&#xff09;&#xff0c;也称为高斯核&#xff0c;是一种常用的核函数&#xff0c;用于支持向量机&a…

计算理论复习

1.Turing Machine 确定性图灵机 图灵机有很多不同的定义&#xff0c;这里选取其中一种&#xff0c;其它定义下的图灵机往往与下面这种定义的图灵机计算能力等价。 图灵机是一个在一条可双向无限延伸且被划分为若干格子的纸带上进行操作的机器&#xff0c;其有内部状态&#…