PHP连接数据库的方法

  • A+
所属分类:PHP

php 连接数据库的方法有很多,以下介绍三种最常用的

使用 MySQLi 扩展连接到 MySQL 数据库

<?php
$servername = "localhost";  // 数据库服务器的名称
$username = "username";     // 数据库用户名
$password = "password";     // 数据库密码
$dbname = "database";       // 数据库名称

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接是否成功
if ($conn->connect_error) {die("连接失败:" . $conn->connect_error);
}

echo "连接成功";

// 关闭连接
$conn->close();
?>

使用 PDO(PHP Data Objects)连接到各种数据库

<?php
$servername = "localhost";  // 数据库服务器的名称
$username = "username";     // 数据库用户名
$password = "password";     // 数据库密码
$dbname = "database";       // 数据库名称

try {
    // 创建连接
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
} catch(PDOException $e) {echo "连接失败:" . $e->getMessage();
}

// 关闭连接
$conn = null;
?>

使用原始的 MySQL 函数连接到 MySQL 数据库

<?php
$servername = "localhost";  // 数据库服务器的名称
$username = "username";     // 数据库用户名
$password = "password";     // 数据库密码
$dbname = "database";       // 数据库名称

// 创建连接
$conn = mysql_connect($servername, $username, $password);

// 检查连接是否成功
if (!$conn) {die("连接失败:" . mysql_error());
}

// 选择数据库
mysql_select_db($dbname, $conn);

echo "连接成功";

// 关闭连接
mysql_close($conn);
?>

以上每种代码的利弊

使用 MySQLi 扩展连接到 MySQL 数据库

利点:

  • MySQLi 是 PHP 官方提供的扩展,具备更多的功能和特性,例如面向对象的编程接口。
  • 支持预处理语句,可以有效地防止 SQL 注入攻击。
  • 提供了更好的错误处理和调试机制。

缺点:

  • 只能用于连接 MySQL 数据库,不支持其他数据库类型。
  • 代码相对比较繁琐,需要显式地进行连接、关闭连接等操作。

使用 PDO(PHP Data Objects)连接到各种数据库

利点:

  • 支持多种数据库,包括 MySQL、SQLite、Oracle 等,具有很好的跨数据库兼容性
  • 提供了统一的 API 和方法,使得切换不同数据库更加方便。
  • 支持预处理语句,可以有效地防止 SQL 注入攻击。

缺点:

  • 需要 PHP 安装 PDO 扩展以及相应的数据库驱动程序。
  • 某些数据库特定的功能可能无法使用,因为 PDO 只提供了通用的数据库操作接口。

使用原始的 MySQL 函数连接到 MySQL 数据库

利点:

  • MySQL 函数是 PHP 的内置函数,无需其他扩展库或模块。
  • 在某些老旧的项目中可能已经广泛使用,因此保持代码的一致性。

缺点:

  • 安全性较差,容易受到 SQL 注入攻击。
  • 只能用于连接 MySQL 数据库,不支持其他数据库类型。
  • 在 PHP7 及以上版本中已被废弃,并从 PHP8 开始移除,因此不推荐在新项目中使用。

总体而言,建议使用 PDO 或 MySQLi 来连接数据库。它们提供了更好的安全性、更多的功能和更好的扩展性,适用于各种数据库类型,并且具备更好的错误处理机制。PDO 在跨数据库兼容性方面表现较好,而 MySQLi 则提供了更多面向对象的特性。原始的 MySQL 函数已过时,不建议在新项目中使用。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: