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: