php mysql connect连接

admin 102 0
PHP中mysql_connect是早期用于建立MySQL数据库连接的传统函数,语法为mysql_connect(servername, username, password),参数分别指定数据库服务器地址、用户名和密码,成功返回连接标识符,失败返回false,但该函数在PHP 5.5.0后被废弃,PHP 7.0起完全移除,因存在安全性不足(如易受SQL注入)、不支持预处理等缺陷,当前推荐使用mysqli扩展(面向过程或面向对象)或PDO(PHP Data Objects),二者提供更安全的预处理语句、事务支持及多数据库兼容能力,确保连接稳定与数据安全。

PHP与MySQL数据库连接演进:从经典`mysql_connect`到现代实践

在动态网站开发的基石中,PHP与MySQL的组合堪称经典——PHP负责处理业务逻辑与前端交互,MySQL作为关系型数据库承担数据存储与管理的重任,而连接这两者的核心桥梁,正是数据库连接层,本文将深入剖析PHP连接MySQL的演进历程:从早期广泛使用的`mysql_connect`函数入手,详解其工作原理、参数配置与基础操作;进而探讨其被废弃的关键原因(安全与性能);最终聚焦于现代PHP开发中官方推荐的、功能更强大的MySQLi和PDO扩展,助您全面掌握PHP与MySQL连接的核心技能与最佳实践。

初识`mysql_connect`:PHP连接MySQL的早期基石

在PHP发展的早期阶段(PHP 4及更早版本),`mysql_connect()`是建立与MySQL服务器连接最直接、最常用的函数,尽管该函数自PHP 5.3起被标记为“废弃”(Deprecated),并在PHP 7.0版本中被彻底移除,理解其工作原理对于掌握数据库连接的本质、理解现代扩展的设计思想仍具有重要价值。

函数语法与参数详解

`mysql_connect()`的基本语法如下:

resource mysql_connect([string server [, string username [, string password [, bool new_link [, int client_flags]]]]])
  • server:MySQL服务器地址,默认为`"localhost"`(表示本地服务器),若MySQL运行在非默认端口(如3306),需指定为`"localhost:3306"`;连接远程服务器则需提供完整的IP地址或域名及端口(如`"192.168.1.100:3306"`)。
  • username:用于连接MySQL服务器的用户名,该用户必须拥有目标数据库的相应访问权限("root"`)。
  • password:与用户名对应的密码,如果用户未设置密码,可传递空字符串`""`。
  • new_link:布尔值,控制是否强制创建新连接,默认为`FALSE`,当同一主机、用户名、密码的连接已存在时,默认会复用该连接(提高性能),设为`TRUE`则强制创建一个全新的连接,适用于需要独立会话的场景(如事务隔离)。
  • client_flags:整数,用于设置客户端连接标志位,以启用特定功能(如压缩传输`MYSQL_CLIENT_COMPRESS`、SSL加密`MYSQL_CLIENT_SSL`等),在大多数基础场景下无需设置。

函数执行成功时返回一个连接标识符(资源类型 resource),失败时返回`FALSE`,该标识符是后续所有数据库操作(如选择数据库、执行查询)的必需参数。

基础连接示例

以下是一个使用`mysql_connect()`连接本地MySQL数据库的简单示例:

// 2. 尝试连接MySQL服务器
$conn = mysql_connect($host, $username, $password);

// 3. 检查连接是否成功 if (!$conn) { // 连接失败:输出MySQL服务器返回的错误信息并终止脚本 die("连接MySQL服务器失败:" . mysql_error()); } else { echo "成功连接到MySQL服务器!"; }

// 4. 关闭连接(脚本执行结束后通常会自动关闭,但显式关闭是良好习惯) mysql_close($conn); ?>

关键说明:

  • mysql_error():获取并返回MySQL服务器返回的最后一条错误信息字符串,对于调试连接问题至关重要。
  • die():输出错误信息并立即终止脚本执行,在连接失败时使用,可避免后续代码因无有效连接而引发更严重的错误。
  • **注意**:此代码示例仅用于演示`mysql_connect`的用法,**不适用于现代PHP项目**(PHP 7+环境会报致命错误)。

连接后的核心操作:选择数据库与执行查询

成功建立连接后,通常需要指定要操作的数据库,并执行SQL查询语句,这主要通过`mysql_select_db()`和`mysql_query()`函数实现:

// 选择要操作的数据库(假设数据库名为"test_db")
$db_selected = mysql_select_db("test_db", $conn);
if (!$db_selected) {
die("选择数据库失败:" . mysql_error());
}

// 执行查询语句(查询用户表中的前5条记录) $sql = "SELECT id, username, email FROM users LIMIT 5"; $result = mysql_query($sql, $conn);

// 处理查询结果 if ($result) { echo "

"; echo ""; // mysql_fetch_assoc() 将结果集的当前行作为关联数组返回(列名作为键) while ($row = mysql_fetch_assoc($result)) { echo ""; echo ""; // 对输出进行HTML转义,防止XSS echo ""; echo ""; echo ""; } echo "
ID用户名邮箱
" . htmlspecialchars($row['id']) . "" . htmlspecialchars($row['username']) . "" . htmlspecialchars($row['email']) . "
"; } else { echo "查询执行失败:" . mysql_error(); }

// 释放结果集占用的内存(脚本结束时会自动释放,但显式释放是良好习惯) mysql_free_result($result);

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

核心函数说明:

  • mysql_select_db(string database_name, resource connection):选择要操作的数据库,成功返回`TRUE`,失败返回`FALSE`,后续所有SQL操作将作用于该数据库。
  • <