先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Golang全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注go)
正文
想要在页面输出“Hello World!”非常简单,仅需要几行代码就可以搞定,如下所示:
<?php echo "Hello World!";?>上面代码中<?php
和?>
分别表示 PHP 文件的开始和结束标记,在这里结束标记?>
并不是必须的,可以省略。两个标记之间是我们所写的 PHP 代码,代码与开始/结束标记也可以在同一行,但必须以空格分开,如下所示:
其中,echo 是输出语句,用于输出一个字符串,也就是 echo 后面以" "
包裹的部分(这里使用' '
也是可以的)。末尾的英文状态的分号;
表示一条语句的结束。
PHP 源文件的格式为“.php”,理论上 PHP 的源文件可以放在任意目录下,但是为了方便运行我们还是尽量将它放置在服务器环境相应的目录下,比如下面列举的这些:
- XAMPP 集成环境:XAMPP 安装目录下的 htdocs 文件夹中;
- PHPStudy 集成环境:PHPStudy 安装目录下的 WWW 文件夹中。
提示:因开发环境的不同,PHP 源文件的存放目录略有不同,比较常见的就是 htdocs、WWW 这两个目录。
本教程中使用的就是 XAMPP 集成环境,所以首先需要在 htdocs 目录下创建一个 index.php 文件,index 在这里是首页的意思,PHP 程序默认会首先运行名为 index 的文件(如 index.php、index.html 等),当然这也不是绝对的,我们也可以通过修改配置文件的方式让 PHP 程序首先运行指定的文件,这些我们会在后面详细介绍。
图:新建一个index.php文件
创建好 index.php 文件后,将我们上面的代码复制到文件中并保存。
在开始运行之前,我们首先需要确认一下 XAMPP 的 apache 服务处于开启状态,如下图所示:
图:开启 apache 服务
然后就可以在浏览器中输入 localhost,或者点击上图红框中的 Admin 按钮就可以运行我们的 PHP 程序了,如下图所示:
图:运行第一个PHP程序
MySQL数据库简介
PHP 在开发 Web 站点或一些管理系统时,需要对大量的数据进行保存,虽然 XML 文件或者文本文件也可以作为数据的载体,但不易进行管理和对大量数据的存储,所以在项目开发时,数据库就显得非常重要。
PHP 可以连接的数据库种类较多,其中 MySQL 数据库与其兼容较好,在 PHP 数据库开发中被广泛地应用。
MySQL 是什么
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。
图:MySQL 图标
目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。
MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载 MySQL 数据库,而不必支付任何费用。
MySQL 特点
下面总结了一下 MySQL 具备的特点。
1) 功能强大
MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。
2) 支持跨平台
MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
3) 运行速度快
高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
4) 支持面向对象
PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。
5) 安全性高
灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。
6) 成本低
MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。
7) 支持各种开发语言
MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。
8) 数据库存储容量大
MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。
9) 支持强大的内置函数
PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。
数据库的应用
数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像及声音等,数据是所有计算机系统所要处理的对象。我们所熟知的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组成数据文件,再用程序来调用,数据文件与程序文件保持着一定的关系。
在计算机应用迅速发展的情况下,这种文件式管理方法便显出它的不足。比如,它使得数据通用性差、不便于移植、在不同文件中存储大量重复信息、浪费存储空间、更新不便等。
而数据库系统便能解决上述问题。数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。
其实简单地说,数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称为数据库管理系统。一般一个数据库系统(Database System)
可以分为数据库(Database)与数据管理系统(Database Management System,DBMS)两个部分。主流的数据库软件有 Oracle、Informix、Sybase、SQL Server、PostgreSQL、MySQL、Access、FoxPro 和 Teradata 等等。
数据库在 Web 开发中的重要地位
归根结底,动态网站都是对数据进行操作,我们平时浏览网页时,会发现网页的内容会经常变化,而页面的主体结构框架没变,新闻就是一个典型。这是因为我们将新闻存储在了数据库中,用户在浏览时,程序就会根据用户所请求的新闻编号,将对应的新闻从数据库中读取出来,然后再以特定的格式响应给用户。
Web 系统的开发基本上是离不开数据库的,因为任何东西都要存放在数据库中。所谓的动态网站就是基于数据库开发的系统,最重要的就是数据管理,或者说我们在开发时都是在围绕数据库在写程序。所以作为一个 Web 程序员,只有先掌握一门数据库,才可能去进行软件开发。
下图展示了项目中一个模块的开发流程:将网站的内容存储在 MySQL 数据库中;然后使用 PHP 通过 SQL 查询获取这些内容并以 HTML 格式输出到浏览器中显示。或者将用户在表单中输出的数据,通过在 PHP 程序中执行 SQL 查询,将数据保存在 MySQL 数据库中。也可以在 PHP 脚本中接受用户在网页上的其他相关操作,再通过 SQL 查询对数据库中存储的网站内容进行管理。
图:基于数据库的 Web 系统
PHP 几乎可以使用现有的所有的数据库,MySQL 与其他的大型数据库例如 Oracle、DB2、SQL Server 等相比,自有它的不足之处,比如规模小、功能有限(MySQL Cluster 的功能和效率都相对比较差)等,但这也丝毫没有减少它受欢迎的程度。 对于一般的个人使用者或者中小型企业来说,MySQL 提供的功能已经绰绰有余,而且由于 MySQL 是开放源码软件,因此可以大大降低总体拥有成本。
目前 Internet 上流行的网站构架方式分别是 LAMP(Linux + Apache + MySQL + PHP/Perl/Python)和 LNMP(Linux + Nginx + MySQL + PHP/Perl/Python),也就是使用 Linux 作为操作系统,Apache 和 Nginx 作为 Web 服务器,MySQL 作为数据库,PHP 作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件,因此使用这种方式不用花一分钱(除开人工成本外)就可以建立起一个稳定、免费的网站系统。
PHP 和 MySQL 的合作方式
在同一个 MySQL 数据库服务器中可以创建多个数据库,如果把每个数据库看成是一个“仓库”,那么网站中的内容数据就存储在这个仓库中。而对数据库中数据的存取及维护等,都是通过数据库管理系统软件进行管理的。
同一个数据库管理系统可以为不同的网站分别建立数据库,但为了使网站中的数据便于维护、备份及移植,最好为一个网站创建一个数据库(在大数据量时则采用分库分表)。数据库和数据库管理系统,以及 PHP 应用程序之间的关系如下图所示。
图:PHP 程序与数据库之间的关系
PHP连接数据库
使用 PHP 操作 MySQL 数据库是进行 Web 开发的必然要求之一,PHP 中提供了完整的操作 MySQL 数据库的函数,这些函数包括了从连接数据库、执行 SQL 语句、处理数据结果集到关闭数据库的方方面面。通过这些函数,使基于 MySQL 数据库的 Web 开发高效而简单。通常 PHP 访问 MySQL 数据库的步骤如下图所示。
图:PHP 访问数据库的步骤
在此之前,我们需要确保开启了 PHP 中的 mysqli 扩展。以 Windows 系统为例,开启 mysqli 扩展就是将 php.ini 配置文件中extension=mysqli
(php7)或extension=php_mysqli.dll
(php5)一项的注释去掉即可。
注意:在学习 PHP 操作 MySQL 数据库的过程中,会涉及到一些 MySQL 的相关知识,不了解的同学可以阅读本站的《MySQL教程》。
开启成功后可以使用 phpinfo() 函数查看,示例代码如下:
<?php phpinfo();?>在输出的界面中搜索 mysqli,出现如下界面则表示开启成功。
图:使用 phpinfo() 函数查看是否开启成功
连接 MySQL 数据库
前面我们成功开启了 PHP 中的 mysqli 扩展,使用扩展中的 mysqli_connect() 函数就可以实现 MySQL 数据库的连接,函数语法格式如下:
mysqli_connect(
[string $host = ini_get(“mysqli.default_host”)
[, string $username = ini_get(“mysqli.default_user”)
[, string $password = ini_get(“mysqli.default_pw”)
[, string $dbname = “”
[, int $port = ini_get(“mysqli.default_port”)
[, string $socket = ini_get(“mysqli.default_socket”)
]]]]]] )
参数说明如下:
- $host:可选参数,要连接的服务器。可以是主机名或者是 IP 地址;
- $username:可选参数,登录所使用的 MySQL 用户名;
- $password:可选参数,登录所用的密码;
- $dbname:可选参数,执行查询时使用的默认数据库;
- $port:可选参数,指定连接到 MySQL 服务器的端口号;
- $socket:可选参数,指定 socket 或要使用的已命名 pipe,这个参数在开发中很少用到。
另外需要注意的是,mysqli_connect() 函数是 mysqli::__construct() 函数的别名,所有使用对象 mysqli() 也可以实现连接数据库。
【示例】下面通过一个简单的代码实现连接数据库。
1) 面向过程风格的写法
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $port = '3306'; $link = @mysqli\_connect($host,$username,$password,$dbname,$port); // 连接到数据库 if($link){ mysqli\_set\_charset($link,'UTF-8'); // 设置数据库字符集 $sql = 'select \* from user'; // SQL 语句 $result = mysqli\_query($link, $sql); // 执行 SQL 语句,并返回结果 $data = mysqli\_fetch\_all($result); // 从结果集中获取所有数据 mysqli\_close($link); }else{ die('数据库连接失败!'); } echo ''; print\_r($data); ?>
2) 面向对象风格的写法
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect\_errno); }else{ $mysql -> set\_charset('UTF-8'); // 设置数据库字符集 $sql = 'select \* from user'; // SQL 语句 $result = $mysql -> query($sql); $data = $result -> fetch\_all(); $mysql -> close(); } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[0] => Array
(
[0] => 1
[1] => 张三
)
)
PHP mysqli_select_db():选择数据库
通过前面《mysqli_connect() 函数》的介绍我们知道,对应数据库名称的参数是可以省略的,如果省略该参数的话,就需要我们在后面来指定一个默认的数据库。PHP 中可以使用 mysqli_select_db() 函数来指定一个默认数据库,它和 MySQL 命令中的use dbname
的功能相似,函数的语法格式如下:
面向对象风格的写法:
mysqli::select_db(string $dbname)
其中,$dbname 为指定的数据库名称
面向过程风格的写法:
mysqli_select_db(mysqli $link, string $dbname)
其中,
l
i
n
k
为
通
过
m
y
s
q
l
i
c
o
n
n
e
c
t
(
)
函
数
返
回
的
数
据
库
连
接
,
link 为通过 mysqli_connect() 函数返回的数据库连接,
link为通过mysqliconnect()函数返回的数据库连接,dbname 为指定的数据库名称。
函数执行成功会返回 TRUE,执行失败则返回 FALSE。
【示例】使用 mysqli_select_db() 函数选择默认数据库
1) 面向对象风格的写法:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect\_errno); }else{ $mysql -> select\_db($dbname); // 选择名为 test 的数据库 $sql = 'select name,sex,age from user'; // SQL 语句 $result = $mysql -> query($sql); // 执行上面的 SQL 语句 $data = $result -> fetch\_all(); $mysql -> close(); } echo ''; print\_r($data); ?>
2) 面向过程风格的写法:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli\_connect($host, $username, $password); if($link){ mysqli\_select\_db($link, $dbname); // 选择名为 test 的数据库 $sql = 'select name,sex,age from user'; // SQL 语句 $result = mysqli\_query($link, $sql); // 执行 SQL 语句,并返回结果 $data = mysqli\_fetch\_all($result); // 从结果集中获取所有数据 mysqli\_close($link); }else{ echo '数据库连接失败!'; } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[0] => Array
(
[0] => 张三
[1] => 男
[2] => 12
)
[1] => Array
(
[0] => 李四
[1] => 男
[2] => 11
)
[2] => Array
(
[0] => 王五
[1] => 男
[2] => 13
)
[3] => Array
(
[0] => 小明
[1] => 女
[2] => 12
)
)
通常我们可以将数据库连接和选择默认数据库的过程写在一个单独的 PHP 脚本文件中。在其他需要对数据库操作的 PHP 脚本中,只要使用 require() 或 include() 等函数将该文件包含进来即可,不需要再重复编写连接数据库的代码了。
这样做不仅可以提高开发效率,更重要的是当数据库的用户名和密码需要变化时,只需要更改这一个文件即可,所有使用该文件的 PHP 脚本都是使用新用户与数据库服务器建立的连接。
PHP mysqli_query():执行SQL语句
成功选择好 MySQL 数据库后,接下来就可以对所选数据库中的数据表进行查询、更改以及删除等操作,PHP 中我们使用 mysqli_query() 函数就可以实现上述的所有操作,函数的语法格式如下:
面向对象风格的写法:
mysqli::query( string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
参数说明:
- $query:要执行的 SQL 语句;
- $resultmode:可选参数,用来修改函数的行为。可以是下列值的任意一个:
- MYSQLI_USE_RESULT(如果需要查询大量数据,使用这个);
- MYSQLI_STORE_RESULT(默认值)。
面向过程风格的写法:
mysqli_query( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )
参数说明:
- $link:表示由 mysqli_connect() 函数返回的数据库连接;
- $query:要执行的 SQL 语句;
- $resultmode:可选参数,用来修改函数的行为。可以是下列值的任意一个:
- MYSQLI_USE_RESULT(如果需要查询大量数据,使用这个);
- MYSQLI_STORE_RESULT(默认值)。
提示:函数执行失败时会返回 FALSE;而通过 mysqli_query() 成功执行 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询时则会返回一个 mysqli_result 对象;其他查询执行成功则返回 TRUE。
演示之前我们先在数据表中添加一些数据,如下所示:
mysql> select * from user;
±—±-------±-----±-----+
| id | name | age | sex |
±—±-------±-----±-----+
| 1 | 张三 | 12 | 男 |
| 2 | 李四 | 11 | 男 |
| 3 | 王五 | 13 | 男 |
| 4 | 小明 | 12 | 女 |
±—±-------±-----±-----+
4 rows in set (0.00 sec)
【示例】使用 mysqli_query() 函数执行指定的 SQL 语句。
1) 面向对象风格的写法
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect\_errno); }else{ $mysql -> set\_charset('UTF-8'); // 设置数据库字符集 $sql = 'select name,sex,age from user'; // SQL 语句 $result = $mysql -> query($sql); // 执行上面的 SQL 语句 $data = $result -> fetch\_all(); $mysql -> close(); } echo ''; print\_r($data); ?>
2) 面向过程风格的写法
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli\_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // SQL 语句 $result = mysqli\_query($link, $sql); // 执行 SQL 语句,并返回结果 $data = mysqli\_fetch\_all($result); // 从结果集中获取所有数据 mysqli\_close($link); }else{ echo '数据库连接失败!'; } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[0] => Array
(
[0] => 张三
[1] => 男
[2] => 12
)
[1] => Array
(
[0] => 李四
[1] => 男
[2] => 11
)
[2] => Array
(
[0] => 王五
[1] => 男
[2] => 13
)
[3] => Array
(
[0] => 小明
[1] => 女
[2] => 12
)
)
PHP获取SQL的查询结果
前面我们介绍了如何执行一条 SQL 语句,也就是调用《mysqli_query() 函数》。当我们执行一条 SELECT 命令的 SQL 语句时,mysqli_query() 函数会返回一个 PHP 资源的引用指针(结果集),也就是这条 SQL 语句的查询结果。通常我们需要对这一结果集进行处理才能得到我们想要的信息。
在 PHP 中处理数据结果集的函数主要有以下几个:
- mysqli_fetch_row():从结果集中取得一行,并以索引数组的形式返回;
- mysqli_fetch_assoc():从结果集中取得一行,并以关联数组的形式返回;
- mysqli_fetch_array():从结果集中取得一行,并以关联数组、索引数组或二者兼有的形式返回;
- mysqli_fetch_all():从结果集中取得所有行,并以关联数组、索引数组或二者兼有的形式返回;
- mysqli_fetch_object():从结果集中取得一行,并以对象的形式返回。
1、mysqli_fetch_row() 函数
mysqli_fetch_row() 函数可以从结果集中取得一行,并以索引数组的形式返回,其语法格式如下:
面向对象风格的写法
mysqli_result::fetch_row()
其中 mysqli_result 为使用 mysqli_query() 函数获取的结果集。
面向过程风格的写法
mysqli_fetch_row(mysqli_result $result)
其中 $result 为使用 mysqli_query() 函数获取的结果集。
【示例】使用 mysqli_fetch_row() 函数获取结果集中的一条数据。
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect\_errno); }else{ $sql = 'select name,sex,age from user'; // SQL 语句 $result = $mysql -> query($sql); // 执行上面的 SQL 语句 $data = $result -> fetch\_row(); $mysql -> close(); } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[0] => 张三
[1] => 男
[2] => 12
)
2、mysqli_fetch_assoc() 函数
mysqli_fetch_assoc() 函数可以从结果集中取得一行,并以关联数组的形式返回,其语法格式如下:
面向对象风格的写法
mysqli_result::fetch_assoc()
其中 mysqli_result 为使用 mysqli_query() 函数获取的结果集。
面向过程风格的写法
mysqli_fetch_assoc(mysqli_result $result)
其中 $result 为使用 mysqli_query() 函数获取的结果集。
【示例】使用 mysqli_fetch_assoc() 函数获取结果集中的一条数据。
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli\_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // SQL 语句 $result = mysqli\_query($link, $sql); // 执行 SQL 语句,并返回结果 $data = mysqli\_fetch\_assoc($result); // 从结果集中获取一条数据 mysqli\_close($link); }else{ echo '数据库连接失败!'; } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[name] => 张三
[sex] => 男
[age] => 12
)
3、mysqli_fetch_array() 函数
mysqli_fetch_array() 函数可以从结果集中取得一行,并根据参数以关联数组、索引数组或二者兼有的形式返回,函数的语法格式如下:
面向对象风格的写法
mysqli_result::fetch_array([int $resulttype = MYSQLI_BOTH])
其中 mysqli_result 为使用 mysqli_query() 函数获取的结果集;$resulttype 为可选参数,它是一个常量,用来设定返回值的类型,它的取值可以是 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。
面向过程风格的写法
mysqli_fetch_array(mysqli_result $result[, int $resulttype = MYSQLI_BOTH])
其中
r
e
s
u
l
t
为
使
用
m
y
s
q
l
i
q
u
e
r
y
(
)
函
数
获
取
的
结
果
集
;
result 为使用 mysqli_query() 函数获取的结果集;
result为使用mysqliquery()函数获取的结果集;resulttype 为可选参数,它是一个常量,用来设定返回值的类型,它的取值可以是 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。
【示例】使用 mysqli_fetch_array() 函数获取结果集中的数据。
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli\_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // SQL 语句 $result = mysqli\_query($link, $sql); // 执行 SQL 语句,并返回结果 $data = mysqli\_fetch\_array($result, MYSQLI\_ASSOC);// 从结果集中获取所有数据 mysqli\_close($link); }else{ echo '数据库连接失败!'; } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[name] => 张三
[sex] => 男
[age] => 12
)
4、mysqli_fetch_all() 函数
mysqli_fetch_all() 函数可以获取结果集中的所有数据,并根据参数以关联数组、索引数组或二者兼有的形式返回,函数的语法格式如下:
面向对象风格的写法
mysqli_result::fetch_all([int $resulttype = MYSQLI_NUM])
其中 mysqli_result 为使用 mysqli_query() 函数获取的结果集;$resulttype 为可选参数,它是一个常量,用来设定返回值的类型,它的取值可以是 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。
面向过程风格的写法
mysqli_fetch_all(mysqli_result $result [, int $resulttype = MYSQLI_NUM])
其中
r
e
s
u
l
t
为
使
用
m
y
s
q
l
i
q
u
e
r
y
(
)
函
数
获
取
的
结
果
集
;
result 为使用 mysqli_query() 函数获取的结果集;
result为使用mysqliquery()函数获取的结果集;resulttype 为可选参数,它是一个常量,用来设定返回值的类型,它的取值可以是 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。
【示例】使用 mysqli_fetch_all() 函数获取结果集中的所有数据。
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect\_errno); }else{ $sql = 'select name,sex,age from user'; // SQL 语句 $result = $mysql -> query($sql); // 执行上面的 SQL 语句 $data = $result -> fetch\_all(MYSQLI\_ASSOC); $mysql -> close(); } echo ''; print\_r($data); ?>
运行结果如下:
Array
(
[0] => Array
(
[name] => 张三
[sex] => 男
[age] => 12
)
[1] => Array
(
[name] => 李四
[sex] => 男
[age] => 11
)
[2] => Array
(
[name] => 王五
[sex] => 男
[age] => 13
)
[3] => Array
(
[name] => 小明
[sex] => 女
[age] => 12
)
)
5、mysqli_fetch_object() 函数
mysqli_fetch_object() 函数可以从结果集中取得一行,并以对象的形式返回。函数的语法格式如下:
面向对象风格的写法
mysqli_result::fetch_object([string $class_name = “stdClass”[, array $params]])
其中 mysqli_result 为使用 mysqli_query() 函数获取的结果集;
c
l
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
= new Mysqli($host, $username, $password,
d
b
n
a
m
e
)
;
i
f
(
dbname); if(
dbname);if(mysql -> connect_errno){
die(‘数据库连接失败:’.$mysql->connect_errno);
}else{
$sql = ‘select name,sex,age from user’; // SQL 语句
$result =
m
y
s
q
l
−
>
q
u
e
r
y
(
mysql -> query(
mysql−>query(sql); // 执行上面的 SQL 语句
$data = $result -> fetch_all(MYSQLI_ASSOC);
KaTeX parse error: Expected 'EOF', got '}' at position 19: …ql -> close(); }̲ echo '<pre>'; …data);
?>
运行结果如下:
Array
(
[0] => Array
(
[name] => 张三
[sex] => 男
[age] => 12
)
[1] => Array
(
[name] => 李四
[sex] => 男
[age] => 11
)
[2] => Array
(
[name] => 王五
[sex] => 男
[age] => 13
)
[3] => Array
(
[name] => 小明
[sex] => 女
[age] => 12
)
)
5、mysqli_fetch_object() 函数
mysqli_fetch_object() 函数可以从结果集中取得一行,并以对象的形式返回。函数的语法格式如下:
面向对象风格的写法
mysqli_result::fetch_object([string $class_name = “stdClass”[, array $params]])
其中 mysqli_result 为使用 mysqli_query() 函数获取的结果集;
c
l
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注Go)
[外链图片转存中…(img-Q2SobY2U-1713341762523)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!