MySQL 连接(附带实例)
                           
天天向上
发布: 2025-02-18 00:02:33

原创
612 人浏览过

MySQL 连接是与数据库交互的基础,PHP 提供了多种方式来连接 MySQL 数据库,最常用的方式是使用 MySQLiPDO 扩展。下面我将为你详细讲解如何使用这两种方式来连接 MySQL,并附带具体实例。

1. 使用 MySQLi 扩展连接 MySQL

面向过程方式

使用 MySQLi 的面向过程方式连接 MySQL 数据库,通常需要指定主机名、用户名、密码和数据库名。

<?php
// 创建数据库连接
$connection = mysqli_connect("localhost", "username", "password", "database_name");

// 检查连接是否成功
if (!$connection) {
    die("Connection failed: " . mysqli_connect_error());
}

echo "Connected successfully";

// 关闭连接
mysqli_close($connection);
?>
  • mysqli_connect 用于建立数据库连接,第一个参数是主机地址(通常是 localhost),第二个是用户名,第三个是密码,第四个是数据库名。
  • 如果连接失败,会输出错误信息并终止脚本执行。

面向对象方式

MySQLi 也支持面向对象的方式连接数据库。你可以通过 new mysqli() 来创建数据库连接对象。

<?php
// 创建 MySQLi 实例并连接数据库
$mysqli = new mysqli("localhost", "username", "password", "database_name");

// 检查连接是否成功
if ($mysqli->connect_error) {
    die("Connection failed: " . $mysqli->connect_error);
}

echo "Connected successfully";

// 关闭连接
$mysqli->close();
?>
  • 使用 new mysqli() 创建连接实例,$mysqli->connect_error 用于检查连接是否成功。

2. 使用 PDO 扩展连接 MySQL

PDO(PHP Data Objects)是一个数据库抽象层,它可以同时支持多种数据库,包括 MySQL。使用 PDO 时,连接方式更为简洁,且支持预处理语句。

基本连接

<?php
try {
    // 创建 PDO 实例并连接到 MySQL 数据库
    $pdo = new PDO("mysql:host=localhost;dbname=database_name", "username", "password");

    // 设置 PDO 错误模式为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    echo "Connected successfully";
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>
  • new PDO("mysql:host=localhost;dbname=database_name", "username", "password") 用于创建 PDO 实例并连接 MySQL 数据库。
  • setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION) 设置错误模式为异常,方便捕捉并处理连接错误。

指定字符集(可选)

为了确保数据库连接使用正确的字符集,通常在连接时设置字符集。

<?php
try {
    $pdo = new PDO("mysql:host=localhost;dbname=database_name", "username", "password");
    $pdo->exec("SET NAMES utf8");  // 设置字符集为 UTF-8

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch (PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

关闭连接

PDO 连接会在脚本结束时自动关闭,因此通常不需要显式地关闭连接。你也可以手动设置 $pdo = null; 来关闭连接。

<?php
$pdo = null;  // 关闭连接
?>

3. MySQL 连接常见错误处理

无论是 MySQLi 还是 PDO,在连接数据库时都可能出现一些错误。为了更好地调试和处理错误,可以使用以下方式:

MySQLi 错误处理

  • 面向过程方式 中,如果连接失败,mysqli_connect_error() 将返回错误信息。
  <?php
  $connection = mysqli_connect("localhost", "username", "password", "database_name");

  if (!$connection) {
      die("Connection failed: " . mysqli_connect_error());
  }
  ?>

PDO 错误处理

  • 使用 try-catch 块来捕获连接错误,$e->getMessage() 会返回错误信息。
  <?php
  try {
      $pdo = new PDO("mysql:host=localhost;dbname=database_name", "username", "password");
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  } catch (PDOException $e) {
      echo "Connection failed: " . $e->getMessage();
  }
  ?>

4. 总结

  • MySQLi 是 MySQL 专用的扩展,支持过程化和面向对象的方式,适用于与 MySQL 数据库交互。
  • PDO 提供了一个更为统一和灵活的数据库接口,支持多种数据库类型,且提供更好的安全性(通过预处理语句防止 SQL 注入)。
  • 两者都可以连接 MySQL 数据库,但如果将来可能需要切换数据库(例如从 MySQL 到 PostgreSQL),则 PDO 是更优选择。

通过这些实例,你可以选择最适合自己需求的方式连接和操作 MySQL 数据库。

发表回复 0

Your email address will not be published. Required fields are marked *