PHP中怎样去连接MySQL数据库?
在之前的文章中给大家带来了《怎样使用PHP中的spl_autoload_register() 和 __autoload() 函数?》,其中详细的介绍了PHP中这两种函数的用法,本篇我们来看一下PHP中怎样去连接数据库。希望对大家有帮助!
在我们的日常开发中,数据库是一个网站必不可少的一部分,PHP作为一种网页编程技术,也必不可少的要与数据库打交道。但是数据库的种类很多,哪一种数据库是最适合PHP的?
通过PHP可以连接和操作数据库,PHP可以连接的数据库种类较多,其中MySQL数据库与PHP兼容性好,搭配使用也是最广泛的,MySQL数据库是跟PHP配套使用最流行的开放数据库系统,那接下来我们一起来学习看看什么是MySQL数据库以及PHP应该怎样连接它。
什么是MySQL
数据库
MySQL 是一款安全、跨平台、高效的,并与多种编程语言紧密结合的数据库系统。MySQL 是一种在 Web 上使用在服务器上运行的数据库系统。其体积小、速度快、总体拥有成本低,MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载 MySQL 数据库,而不必支付任何费用。大家感兴趣的话也可以点击《MySQL最新手册教程》进行学习。
MySQL数据库的特点
-
功能强大,支持跨平台MySQL 适用于不同的应用场合,MySQL 支持至少 20 种以上的开发平台,这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
-
运行速度快,高速是 MySQL 的显著特性。在 MySQL 中,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
-
支持面向对象,PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。
-
安全性高,灵活和安全的权限与密码系统。
-
成本低,MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。
-
支持各种开发语言,MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数。
-
数据库存储容量大,支持强大的内置函数,PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。
数据库的应用
数据库是一种专门用来管理数据资源的系统,数据其实就是计算机每天打交道需要处理的对象,无论是文字、图形还是声音等等这些都是数据的一种形式。在文件式管理方法中,有着诸如不便移植、浪费储存空间等问题,但是数据库更够更好的解决这些问题。
数据库立足于数据本身的管理,他将所有的数据保存到数据库中,进行有序的组织,并且借助数据库管理系统能够更方便的使用数据库中的数据。可以理解为数据库就是经过了计算机整理后的数据,管理这些数据的软件就是数据管理系统。一个数据库系统是由数据库和数据管理系统两个部分组成的。
在同一个 MySQL 数据库服务器中可以创建多个数据库,如果把每个数据库看成是一个“仓库”,那么网站中的内容数据就存储在这个仓库中。而对数据库中数据的存取及维护等,都是通过数据库管理系统软件进行管理的。
连接MySQL数据库
使用 PHP 操作 MySQL 数据库是进行 Web 开发的必然要求之一,PHP 中提供了完整的操作 MySQL 数据库的函数,这些函数包括了从连接数据库、执行 SQL 语句、处理数据结果集到关闭数据库的方方面面。通过这些函数,使基于 MySQL 数据库的 Web 开发高效而简单。那接下来我们就来看一下PHP怎样连接到MySQL数据库。
在连接到数据库之前,我们要确保开启了 PHP 中的 mysqli
扩展。开启 mysqli 扩展就是将 php.ini
配置文件中extension=mysqli
这一项注释去掉就行了。我们可以通过 phpinfo()
函数查看来查看mysqli 扩展是否开启成功:
<?php phpinfo(); ?>
在输出结果中出现:
就表示已经开启PHP中的 mysqli 扩展,在我们确认已经成功开启后,就可以通过扩展中的mysqli_connect()
函数来进行PHP与MySQL数据库的连接。
其中mysqli_connect()
函数的语法格式如下:
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
是可选参数,要连接的服务器; -
$username
是可选参数,登录所使用的 MySQL 用户名; -
$password
是可选参数,登录所用的密码; -
$dbname
是可选参数,执行查询时使用的默认数据库; -
$port
是可选参数,指定连接到 MySQL 服务器的端口号; -
$socket
是可选参数,指定 socket 或要使用的已命名 pipe; -
mysqli_connect()
函数是 mysqli::__construct() 函数的别名,所有使用对象 mysqli() 也可以实现连接数据库。
接下来我们通过示例来看一下应该怎样连接,示例如下:
<?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 '<pre>'; print_r($data); ?>
输出结果会获取数据库中你所设置的字符集,若是没有连接上两种输出结果如下所示:
上述示例是面向过程的一种方法,下面看一下面向对象的方法:
<?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 '<pre>'; print_r($data); ?>
输出结果与上述示例中的输出结果一致。
想要关闭连接的话,一般情况下,连接会在脚本运行完毕后自动关闭,当然也可以使用代码来关闭连接,示例如下:
$conn->close();
上述是面向对象方法时的关闭连接代码,下面看一下面向过程方法的代码,示例如下:
mysqli_close($conn);
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。