🗣 Wd提问: php连接mysql教程
🤖 Ai回答: 以下是使用 PHP 连接 MySQL 数据库的详细教程,包含多种连接方式和最佳实践。
一、准备工作
1、确保环境支持
安装了 PHP(建议 7.4 或以上版本)
安装了 MySQL 数据库
PHP 启用了 MySQL 扩展(通常默认启用)
2、确认 MySQL 服务运行中
可通过命令行或图形化工具(如 phpMyAdmin)验证数据库是否正常运行。
3、创建测试数据库和表
sql
CREATE DATABASE IF NOT EXISTS testdb;
USE testdb;
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
email VARCHAR(100)
);
二、PHP 连接 MySQL 的三种主要方式
方法一:使用 MySQLi(推荐)
MySQLi 是 MySQL 的改进接口,支持面向对象和过程式编程。
1、面向对象方式(推荐)
php
<?php
$servername = localhost;
$username = root;
$password = your_password;
$dbname = testdb;
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn-connect_error) {
die(连接失败: 、$conn-connect_error);
}
echo 连接成功!;
// 关闭连接
$conn-close();
?
2、过程式方式
php
<?php
$servername = localhost;
$username = root;
$password = your_password;
$dbname = testdb;
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接
if (!$conn) {
die(连接失败: 、mysqli_connect_error());
}
echo 连接成功!;
// 关闭连接
mysqli_close($conn);
?
方法二:使用 PDO(推荐用于现代项目)
PDO(PHP Data Objects)是通用数据库访问接口,支持多种数据库,具有更好的安全性和灵活性。
php
<?php
$servername = localhost;
$username = root;
$password = your_password;
$dbname = testdb;
try {
$pdo = new PDO(mysql:host=$servername;dbname=$dbname, $username, $password);
// 设置错误模式为异常
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo 连接成功!;
} catch(PDOException $e) {
echo 连接失败: 、$e-getMessage();
}
?
三、执行 SQL 查询示例
使用 MySQLi 查询数据
php
<?php
$servername = localhost;
$username = root;
$password = your_password;
$dbname = testdb;
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn-connect_error) {
die(连接失败: 、$conn-connect_error);
}
$sql = SELECT id, name, email FROM users;
$result = $conn-query($sql);
if ($result-num_rows 0) {
while($row = $result-fetch_assoc()) {
echo ID: 、$row[id]、 Name: 、$row[name]、 Email: 、$row[email]、<br;
}
} else {
echo 0 结果;
}
$conn-close();
?
使用 PDO 查询数据
php
<?php
$servername = localhost;
$username = root;
$password = your_password;
$dbname = testdb;
try {
$pdo = new PDO(mysql:host=$servername;dbname=$dbname, $username, $password);
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo-prepare(SELECT id, name, email FROM users);
$stmt-execute();
$results = $stmt-fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $row) {
echo ID: 、$row[id] 、 Name: 、$row[name] 、 Email: 、$row[email] 、<br;
}
} catch(PDOException $e) {
echo 查询失败: 、$e-getMessage();
}
?
四、插入数据示例
使用 MySQLi 插入数据(防止 SQL 注入)
php
<?php
$servername = localhost;
$username = root;
$password = your_password;
$dbname = testdb;
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn-connect_error) {
die(连接失败: 、$conn-connect_error);
}
$name = $_POST['name'] ?? '';
$email = $_POST['email'] ?? '';
// 使用预处理语句防止 SQL 注入
$stmt = $conn-prepare(INSERT INTO users (name, email) VALUES (?, ?));
$stmt-bind_param(ss, $name, $email);
if ($stmt-execute()) {
echo 新记录插入成功;
} else {
echo 错误: 、$stmt-error;
}
$stmt-close();
$conn-close();
?
使用 PDO 插入数据
php
<?php
try {
$pdo = new PDO(mysql:host=localhost;dbname=testdb, $username, $password);
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo-prepare(INSERT INTO users (name, email) VALUES (:name, :email));
$stmt-bindParam(':name', $name);
$stmt-bindParam(':email', $email);
$stmt-execute();
echo 新记录插入成功;
} catch(PDOException $e) {
echo 错误: 、$e-getMessage();
}
?
五、安全注意事项
1、永远不要在代码中硬编码密码
使用配置文件(如 `.env`)或环境变量管理敏感信息。
2、使用预处理语句(Prepared Statements)
防止 SQL 注入攻击。
3、关闭调试信息
生产环境中不要显示错误信息。
4、使用 HTTPS
保护数据传输安全。
六、推荐工具与扩展
MySQL Workbench:可视化数据库管理工具。
phpMyAdmin:Web 界面管理 MySQL。
Composer:用于管理依赖(如 `PDO` 相关库)。
dotenv:管理环境变量(`vlucas/phpdotenv`)。
七、总结
| 方式 | 特点 | 推荐场景 |
|
| MySQLi | 性能好,功能丰富 | 中小型项目 |
| PDO | 跨数据库兼容,安全性高 | 大型项目、需要多数据库支持 |
✅ 建议使用 PDO + 预处理语句,更安全、可维护性强。
如果你有具体需求(如连接远程数据库、使用 SSL、事务处理等),可以继续提问,我会提供更详细的解决方案。
📣 商家广告:





0
IP地址: 145.240.3.61
搜索次数: 5
提问时间: 2025-12-19 22:09:46
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。