PHP中怎样去连接MySQL数据库?

在之前的文章中给大家带来了《怎样使用PHP中的spl_autoload_register() 和 __autoload() 函数?》,其中详细的介绍了PHP中这两种函数的用法,本篇我们来看一下PHP中怎样去连接数据库。希望对大家有帮助!

PHP中怎样去连接MySQL数据库?

在我们的日常开发中,数据库是一个网站必不可少的一部分,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();
?>

在输出结果中出现:

1027.01.png

就表示已经开启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     = &#39;localhost&#39;;
    $username = &#39;root&#39;;
    $password = &#39;root&#39;;
    $dbname   = &#39;test&#39;;
    $port     = &#39;3306&#39;;
    $link     = @mysqli_connect($host,$username,$password,$dbname,$port);   // 连接到数据库
    if($link){
        mysqli_set_charset($link,&#39;UTF-8&#39;);      // 设置数据库字符集
        $sql    = &#39;select * from user&#39;;         // SQL 语句
        $result = mysqli_query($link, $sql);    // 执行 SQL 语句,并返回结果
        $data   = mysqli_fetch_all($result);    // 从结果集中获取所有数据
        mysqli_close($link);
    }else{
        die(&#39;数据库连接失败!&#39;);
    }
    echo &#39;
&#39;;
    print_r($data);
?>

输出结果会获取数据库中你所设置的字符集,若是没有连接上两种输出结果如下所示:

1027.04.png1027.03.png

上述示例是面向过程的一种方法,下面看一下面向对象的方法:

<?php
    $host     = &#39;localhost&#39;;
    $username = &#39;root&#39;;
    $password = &#39;root&#39;;
    $dbname   = &#39;test&#39;;
    $mysql    = new Mysqli($host, $username, $password, $dbname);
    if($mysql -> connect_errno){
        die(&#39;数据库连接失败:&#39;.$mysql->connect_errno);
    }else{
        $mysql -> set_charset(&#39;UTF-8&#39;); //  设置数据库字符集
        $sql = &#39;select * from user&#39;;         // SQL 语句
        $result = $mysql -> query($sql);
        $data = $result -> fetch_all();
        $mysql -> close();
    }
    echo &#39;
&#39;;
    print_r($data);
?>

输出结果与上述示例中的输出结果一致。

想要关闭连接的话,一般情况下,连接会在脚本运行完毕后自动关闭,当然也可以使用代码来关闭连接,示例如下:

$conn->close();

上述是面向对象方法时的关闭连接代码,下面看一下面向过程方法的代码,示例如下:

mysqli_close($conn);

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上就是PHP中怎样去连接MySQL数据库?的详细内容,更多请关注其它相关文章!