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

🗣 Wd提问: php数据库增删改查

🤖 Ai回答:
在 PHP 中进行数据库的“增删改查”(CRUD:Create, Read, Update, Delete)操作,通常使用 MySQL 数据库,并通过 MySQLi 或 PDO 扩展来实现。下面以 MySQLi 面向对象方式 为例,详细介绍如何实现 CRUD 操作。

🛠️ 前提准备

1、已安装并启动 MySQL 数据库。
2、创建数据库和数据表:

sql
CREATE DATABASE test_db;
USE test_db;

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

3、确保 PHP 支持 MySQLi 扩展(默认开启)。

✅ 1、连接数据库

php
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test_db';

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

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

echo 连接成功!<br;
?

➕ 2、增加数据 (Create / INSERT)

php
$name = 张三;
$email = zhangsan@65.hk;

$sql = INSERT INTO users (name, email) VALUES ('$name', '$email');

if ($conn-query($sql) === TRUE) {
echo 新记录插入成功,ID为: 、$conn-insert_id 、<br;
} else {
echo Error: 、$sql 、<br 、$conn-error;
}

⚠️ 注意:上面代码有 SQL 注入风险!推荐使用预处理语句:

✅ 使用预处理语句防止注入:

php
$stmt = $conn-prepare(INSERT INTO users (name, email) VALUES (?, ?));
$stmt-bind_param(ss, $name, $email); // s 表示 string

$name = 李四;
$email = lisi@65.hk;

if ($stmt-execute()) {
echo 插入成功,ID: 、$stmt-insert_id 、<br;
} else {
echo 错误: 、$stmt-error;
}

$stmt-close();

🔍 3、查询数据 (Read / SELECT)

php
$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 结果<br;
}

✅ 使用预处理查询(带条件):

php
$stmt = $conn-prepare(SELECT id, name, email FROM users WHERE id = ?);
$stmt-bind_param(i, $id); // i 表示 integer
$id = 1;

$stmt-execute();
$result = $stmt-get_result();

while ($row = $result-fetch_assoc()) {
echo ID: 、$row[id]、 Name: 、$row[name]、 Email: 、$row[email]、<br;
}

$stmt-close();

✏️ 4、更新数据 (Update / UPDATE)

php
$stmt = $conn-prepare(UPDATE users SET name = ?, email = ? WHERE id = ?);
$stmt-bind_param(ssi, $name, $email, $id);

$name = 王五修改版;
$email = wangwu_updated@65.hk;
$id = 1;

if ($stmt-execute()) {
echo 更新成功,影响行数: 、$stmt-affected_rows 、<br;
} else {
echo 更新失败: 、$stmt-error;
}

$stmt-close();

❌ 5、删除数据 (Delete / DELETE)

php
$stmt = $conn-prepare(DELETE FROM users WHERE id = ?);
$stmt-bind_param(i, $id);

$id = 2;

if ($stmt-execute()) {
echo 删除成功,影响行数: 、$stmt-affected_rows 、<br;
} else {
echo 删除失败: 、$stmt-error;
}

$stmt-close();

🧹 最后关闭连接

php
$conn-close();

📌 完整示例整合(可保存为 `crud.php`)

php
<?php
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test_db';

$conn = new mysqli($host, $username, $password, $dbname);
if ($conn-connect_error) {
die(连接失败: 、$conn-connect_error);
}
$conn-set_charset(utf8); // 设置字符集防止中文乱码

// 插入
$stmt = $conn-prepare(INSERT INTO users (name, email) VALUES (?, ?));
$stmt-bind_param(ss, $name, $email);
$name = 测试用户;
$email = test@65.hk;
$stmt-execute();
echo 插入ID: 、$stmt-insert_id 、<br;
$stmt-close();

// 查询
$result = $conn-query(SELECT * FROM users);
while ($row = $result-fetch_assoc()) {
echo ID:{$row['id']}, Name:{$row['name']}, Email:{$row['email']}<br;
}

// 更新
$stmt = $conn-prepare(UPDATE users SET name = ? WHERE id = ?);
$stmt-bind_param(si, $newName, $updateId);
$newName = 已更新用户;
$updateId = 1;
$stmt-execute();
echo 更新影响行数: 、$stmt-affected_rows 、<br;
$stmt-close();

// 删除
$stmt = $conn-prepare(DELETE FROM users WHERE id = ?);
$stmt-bind_param(i, $deleteId);
$deleteId = 3;
$stmt-execute();
echo 删除影响行数: 、$stmt-affected_rows 、<br;
$stmt-close();

$conn-close();
?

✅ 推荐实践

始终使用 预处理语句(Prepared Statements)避免 SQL 注入。
设置数据库字符集为 `utf8mb4` 支持 emoji 和中文。
错误处理要完善,生产环境应记录日志而非直接输出。
可考虑封装成类或使用框架(如 Laravel、ThinkPHP)简化操作。

🔄 PDO 方式(简要对比)

如果你喜欢用 PDO,语法类似:

php
$pdo = new PDO(mysql:host=localhost;dbname=test_db;charset=utf8, $username, $password);
$stmt = $pdo-prepare(INSERT INTO users (name, email) VALUES (?, ?));
$stmt-execute([$name, $email]);

PDO 支持多种数据库,更灵活,适合大型项目。

✅ 掌握以上内容,你就可以在 PHP 中熟练进行数据库的增删改查操作了!

如需进一步封装成类、分页、事务等高级功能,也可以继续深入学习。需要的话我可以提供进阶版本 👍

Ai作答

📣 商家广告


广告招商

公司域名

看相

vps

广告招商


0

IP地址: 76.164.82.177

搜索次数: 13

提问时间: 2025-12-13 23:53:29

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

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

👉

技术支持

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

上一篇 83759 83760 83761 下一篇