PHP连接MySQL推荐使用mysqli扩展,因其支持预处理语句、提供面向对象和过程两种接口、具备更高安全性和性能,且兼容MySQL新特性,而旧的mysql扩展已被废弃。

好的,PHP要连接MySQL数据库,现在主流且推荐的方式就是用
mysqli
mysql
说实话,每次讲到PHP连接数据库,我脑子里首先浮现的就是
mysqli
面向对象方式连接:
<?php
$servername = "localhost"; // 数据库服务器地址,通常是localhost
$username = "your_username"; // 数据库用户名
$password = "your_password"; // 数据库密码
$dbname = "your_database"; // 要连接的数据库名
$port = 3306; // MySQL默认端口,如果不是可以修改
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname, $port);
// 检查连接是否成功
if ($conn->connect_error) {
// 这里我通常会选择记录日志而不是直接die,
// 生产环境直接die会暴露太多信息,不够安全。
error_log("数据库连接失败: " . $conn->connect_error); // 记录到服务器错误日志
die("抱歉,系统繁忙,请稍后再试。"); // 给用户一个友好的提示
}
echo "数据库连接成功(面向对象方式)!<br>";
// 接下来就可以执行SQL查询了,例如:
/*
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
*/
// 关闭连接,这是个好习惯,用完就关。
$conn->close();
?>面向过程方式连接:
立即学习“PHP免费学习笔记(深入)”;
<?php
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
$port = 3306;
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname, $port);
// 检查连接
if (!$conn) {
// 同样,这里处理错误的方式很重要,别直接把错误信息抛给用户。
error_log("数据库连接失败: " . mysqli_connect_error());
die("抱歉,系统繁忙,请稍后再试。");
}
echo "数据库连接成功(面向过程方式)!<br>";
// 执行查询示例,例如:
/*
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 结果";
}
*/
// 关闭连接
mysqli_close($conn);
?>mysqli
mysql
嗯,这个问题其实挺关键的,也是我刚开始学PHP连接数据库时的一个疑惑。简单来说,
mysql
那么,为什么会这样呢?最主要的原因就是安全性和功能性。
mysqli
mysql
mysqli
mysql
mysqli
mysqli
mysqli
所以,从长远来看,无论是项目的健壮性、安全性还是未来的可维护性,
mysqli
mysql
mysqli
在实际开发中,连接数据库失败是常有的事,可能是数据库没启动,可能是配置错了,也可能是网络问题。所以,妥善处理这些错误,让你的应用不至于直接“崩掉”,而是能给用户一个友好的提示,这非常重要。
前面在连接代码里,我们已经看到了最基本的错误检查:
$conn->connect_error
$conn->connect_errno
mysqli_connect_error()
mysqli_connect_errno()
这些会告诉你连接失败的具体原因和错误码。
我的处理哲学是:
die("连接失败: " . $conn->connect_error);error_log()
try-catch
mysqli
mysqli
<?php
// 示例:更安全的错误处理
$servername = "localhost";
$username = "wrong_user"; // 故意写错用户名
$password = "wrong_pass";
$dbname = "your_database";
try {
// mysqli的连接错误通常是PHP的警告或致命错误,默认不会被try-catch捕获
// 但我们可以通过检查connect_error来模拟抛出异常
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
throw new Exception("数据库连接失败: " . $conn->connect_error, $conn->connect_errno);
}
echo "数据库连接成功!";
// ... 执行其他数据库操作 ...
$conn->close();
} catch (Exception $e) {
// 捕获我们自己抛出的异常,或者其他代码中抛出的异常
error_log("捕获到数据库连接或操作异常: " . $e->getMessage() . " (Code: " . $e->getCode() . ")", 0);
// 重定向到通用错误页面,或者显示友好的错误信息
header('Location: /error_page.php?code=db_error');
exit();
}
?>当然,上面的
try-catch
connect_error
mysqli
聊到数据库连接,安全性绝对是重中之重,一个不小心就可能让整个系统面临巨大风险。除了前面提到的不暴露错误信息,还有几个方面是我们需要特别注意的:
<?php // 假设 $
以上就是php怎么连接mysql数据库_php使用mysqli连接数据库的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号