PHP MySQL 连接

在本教程中,您将学习如何使用PHP连接到MySQL服务器。

通过PHP连接到MySQL的方法

为了存储或访问MySQL数据库中的数据,您首先需要连接到MySQL数据库服务器。PHP提供了两种不同的连接到MySQL服务器的方式:MySQLi(改进的MySQL)和PDO(PHP数据对象)扩展。

虽然PDO扩展名更具可移植性,并且支持超过十二个不同的数据库,但顾名思义,MySQLi扩展名仅支持MySQL数据库。但是,MySQLi扩展提供了一种连接到MySQL数据库服务器并在其中执行查询的简便方法。PDO和MySQLi都提供了一个面向对象的API,但是MySQLi还提供了一个过程API,对于初学者来说相对容易理解。

提示:与PDO扩展相比,PHP的MySQLi扩展同时提供了速度和功能优势,因此对于特定于MySQL的项目,它可能是更好的选择。

连接到MySQL数据库服务器

在PHP中,您可以使用mysqli_connect()函数轻松地执行此操作。PHP和MySQL数据库服务器之间的所有通信都通过此连接进行。以下是使用MySQLi和PDO扩展连接到MySQL的三种基本语法:

语法:MySQLi,程序化方式

$link = mysqli_connect("hostname", "username", "password", "database");

语法:MySQLi,面向对象的方式

$mysqli = new mysqli("hostname", "username", "password", "database");

语法:PHP数据对象(PDO)方式

$pdo = new PDO("mysql:host=hostname;dbname=database", "username", "password");

上面语法中的hostname参数指定主机名(例如localhost)或MySQL服务器的IP地址,而username和password参数指定访问MySQL服务器的凭据,而数据库参数(如果提供)将指定默认MySQL 执行查询时要使用的数据库。

下面的示例演示如何使用MySQLi(程序面向对象的方式)和PDO扩展连接到MySQL数据库服务器。

在线示例

<?php
/* 尝试MySQL服务器连接。 假设您正在运行MySQL。
具有默认设置的服务器(没有密码的用户“root”) */
$link = mysqli_connect("localhost", "root", "");
 
// 检查连接
if($link === false){
    die("错误:无法连接。" . mysqli_connect_error());
}
 
//打印主机信息
echo "连接成功。 主机信息: " . mysqli_get_host_info($link);
?>
<?php
/* 尝试MySQL服务器连接。 假设您正在运行MySQL。
具有默认设置的服务器(没有密码的用户“root”) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// 检查连接
if($mysqli === false){
    die("错误:无法连接。" . $mysqli->connect_error);
}
 
//打印主机信息
echo "连接成功。 主机信息:" . $mysqli->host_info;
?>
<?php
/*尝试MySQL服务器连接。 假设您正在运行MySQL。
具有默认设置的服务器(没有密码的用户“root”) */
try{
    $pdo = new PDO("mysql:host=localhost", "root", "");
    
    //将PDO错误模式设置为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //打印主机信息
    echo "连接成功。 主机信息:" . $pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("错误:无法连接。 " . $e->getMessage());
}
?>

注意: MySQL数据库服务器的默认用户名是root,没有密码。但是,为了防止数据库被入侵和未经授权的访问,您应该为MySQL帐户设置密码。

提示:将PDO::ATTR_ERRMODE属性设置为PDO::ERRMODE_EXCEPTION将告诉PDO在发生数据库错误时抛出异常。

关闭MySQL数据库服务器连接

脚本执行结束后,与MySQL数据库服务器的连接将自动关闭。但是,如果您想提前关闭它,只需调用PHP mysqli_close()函数即可。

在线示例

<?php
/*尝试MySQL服务器连接。 假设您正在运行MySQL。
具有默认设置的服务器(没有密码的用户“root”)*/
$link = mysqli_connect("localhost", "root", "");
 
// 检查连接
if($link === false){
    die("错误:无法连接。" . mysqli_connect_error());
}
 
// 打印主机信息
echo "连接成功。 主机信息: " . mysqli_get_host_info($link);
 
// 关闭连接
mysqli_close($link);
?>
<?php
/*尝试MySQL服务器连接。 假设您正在运行MySQL。
具有默认设置的服务器(没有密码的用户“root”) */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
// 检查连接
if($mysqli === false){
    die("错误:无法连接。" . $mysqli->connect_error);
}
 
// 打印主机信息
echo "连接成功。 主机信息: " . $mysqli->host_info;
 
// 关闭连接
$mysqli->close();
?>
<?php
/* 尝试MySQL服务器连接。 假设您正在运行MySQL。
具有默认设置的服务器(没有密码的用户“root”) */
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    
    //将PDO错误模式设置为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    //打印主机信息
    echo "连接成功。 主机信息: " .$pdo->getAttribute(constant("PDO::ATTR_CONNECTION_STATUS"));
} catch(PDOException $e){
    die("错误:无法连接。" . $e->getMessage());
}
 
//关闭连接
unset($pdo);
?>