豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: PHP源码MySQL增删改查

🤖 Ai回答:
在 PHP 中,使用 MySQL 进行增删改查(CRUD)操作通常通过 `MySQLi` 或 `PDO` 扩展来实现。以下是使用 MySQLi 和 PDO 两种方式的完整示例,包括连接数据库、插入、查询、更新和删除操作。

✅ 1、使用 MySQLi(面向对象)

php
<?php
// 数据库配置
$host = localhost;
$user = root;
$pass = ;
$dbname = test_db;

// 创建连接
$conn = new mysqli($host, $user, $pass, $dbname);

// 检查连接
if ($conn-connect_error) {
die(连接失败: 、$conn-connect_error);
}

// 设置字符集
$conn-set_charset(utf8mb4);

// === 增加数据(INSERT) ===
function insertUser($name, $email) {
global $conn;
$stmt = $conn-prepare(INSERT INTO users (name, email) VALUES (?, ?));
$stmt-bind_param(ss, $name, $email);
if ($stmt-execute()) {
echo 新用户添加成功!<br;
} else {
echo 错误: 、$stmt-error;
}
$stmt-close();
}

// === 查询数据(SELECT) ===
function getUsers() {
global $conn;
$result = $conn-query(SELECT * FROM users);
if ($result-num_rows 0) {
while ($row = $result-fetch_assoc()) {
echo ID: 、$row[id] 、 名称: 、$row[name] 、 邮箱: 、$row[email] 、<br;
}
} else {
echo 没有用户数据。<br;
}
}

// === 更新数据(UPDATE) ===
function updateUser($id, $name, $email) {
global $conn;
$stmt = $conn-prepare(UPDATE users SET name=?, email=? WHERE id=?);
$stmt-bind_param(ssi, $name, $email, $id);
if ($stmt-execute()) {
echo 用户更新成功!<br;
} else {
echo 错误: 、$stmt-error;
}
$stmt-close();
}

// === 删除数据(DELETE) ===
function deleteUser($id) {
global $conn;
$stmt = $conn-prepare(DELETE FROM users WHERE id=?);
$stmt-bind_param(i, $id);
if ($stmt-execute()) {
echo 用户删除成功!<br;
} else {
echo 错误: 、$stmt-error;
}
$stmt-close();
}

// 示例使用
// insertUser(张三, zhangsan@65.hk);
// getUsers();
// updateUser(1, 李四, lisi@65.hk);
// deleteUser(2);

$conn-close();
?

✅ 2、使用 PDO(推荐,更安全)

php
<?php
// 数据库配置
$host = localhost;
$user = root;
$pass = ;
$dbname = test_db;

try {
// 创建 PDO 连接
$pdo = new PDO(mysql:host=$host;dbname=$dbname;charset=utf8mb4, $user, $pass);
$pdo-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo-setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

// === 增加数据(INSERT) ===
function insertUserPDO($pdo, $name, $email) {
$sql = INSERT INTO users (name, email) VALUES (:name, :email);
$stmt = $pdo-prepare($sql);
$stmt-execute(['name' = $name, 'email' = $email]);
echo 新用户添加成功!<br;
}

// === 查询数据(SELECT) ===
function getUsersPDO($pdo) {
$sql = SELECT * FROM users;
$stmt = $pdo-query($sql);
while ($row = $stmt-fetch()) {
echo ID: 、$row[id] 、 名称: 、$row[name] 、 邮箱: 、$row[email] 、<br;
}
}

// === 更新数据(UPDATE) ===
function updateUserPDO($pdo, $id, $name, $email) {
$sql = UPDATE users SET name=:name, email=:email WHERE id=:id;
$stmt = $pdo-prepare($sql);
$stmt-execute(['name' = $name, 'email' = $email, 'id' = $id]);
echo 用户更新成功!<br;
}

// === 删除数据(DELETE) ===
function deleteUserPDO($pdo, $id) {
$sql = DELETE FROM users WHERE id=:id;
$stmt = $pdo-prepare($sql);
$stmt-execute(['id' = $id]);
echo 用户删除成功!<br;
}

// 示例使用
// insertUserPDO($pdo, 王五, wangwu@65.hk);
// getUsersPDO($pdo);
// updateUserPDO($pdo, 1, 赵六, zhaoliu@65.hk);
// deleteUserPDO($pdo, 2);

} catch (PDOException $e) {
echo 连接失败: 、$e-getMessage();
}
?

📝 表结构示例(MySQL)

sql
CREATE DATABASE IF NOT EXISTS test_db;
USE test_db;

CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);

🔐 安全建议

1、使用预处理语句(如上所示)防止 SQL 注入。
2、不要在生产环境使用 root 用户,创建专用数据库用户。
3、设置合适的权限,避免数据库被恶意操作。
4、使用 HTTPS 和输入验证,防止 XSS 和 CSRF 攻击。

✅ 总结

| 操作 | MySQLi | PDO |
|
| 插入 | 支持 | 支持 |
| 查询 | 支持 | 支持 |
| 更新 | 支持 | 支持 |
| 删除 | 支持 | 支持 |
| 安全性 | 需手动防范 SQL 注入 | 更安全,支持参数绑定 |
| 推荐 | 旧项目 | 新项目 |

✅ 推荐使用 PDO,因为它支持多种数据库(MySQL、PostgreSQL、SQLite 等),并且更安全、更灵活。

如果你需要完整的增删改查页面(HTML + PHP),也可以告诉我,我可以提供一个完整的示例。

Ai作答

📣 商家广告


公司域名

广告招商

八字

香港vps

vps


0

IP地址: 94.75.95.250

搜索次数: 15

提问时间: 2025-11-14 07:01:28

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 90024 90025 90026 下一篇