当前位置:首页 > PHP

php实现数据库查询

2026-02-13 18:22:13PHP

使用PDO连接数据库

PDO(PHP Data Objects)是PHP中连接数据库的扩展,支持多种数据库类型。以下代码展示如何连接MySQL数据库:

$host = 'localhost';
$dbname = 'test_db';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

执行简单查询

通过PDO的query()方法执行SELECT查询,获取结果集:

$sql = "SELECT id, name, email FROM users";
$stmt = $pdo->query($sql);

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    echo "ID: " . $row['id'] . ", Name: " . $row['name'] . ", Email: " . $row['email'] . "<br>";
}

使用预处理语句防止SQL注入

预处理语句通过prepare()execute()实现,适用于带参数的查询:

$user_id = 1;
$sql = "SELECT name FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$user_id]);
$result = $stmt->fetch(PDO::FETCH_ASSOC);

if ($result) {
    echo "用户名: " . $result['name'];
} else {
    echo "未找到用户";
}

插入数据示例

通过预处理语句插入数据,并获取最后插入的ID:

$name = "John Doe";
$email = "john@example.com";

$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->execute([':name' => $name, ':email' => $email]);

$last_id = $pdo->lastInsertId();
echo "新记录ID: " . $last_id;

更新和删除数据

更新数据示例:

$new_email = "new_email@example.com";
$user_id = 1;

$sql = "UPDATE users SET email = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$new_email, $user_id]);
echo "更新行数: " . $stmt->rowCount();

删除数据示例:

$user_id = 1;
$sql = "DELETE FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$user_id]);
echo "删除行数: " . $stmt->rowCount();

错误处理与事务

使用事务确保数据一致性:

try {
    $pdo->beginTransaction();

    $sql1 = "UPDATE accounts SET balance = balance - 100 WHERE user_id = 1";
    $pdo->exec($sql1);

    $sql2 = "UPDATE accounts SET balance = balance + 100 WHERE user_id = 2";
    $pdo->exec($sql2);

    $pdo->commit();
    echo "事务成功";
} catch (Exception $e) {
    $pdo->rollBack();
    echo "事务失败: " . $e->getMessage();
}

php实现数据库查询

分享给朋友:

相关文章

php实现树

php实现树

PHP实现树结构的方法 在PHP中实现树结构通常可以通过递归或迭代的方式完成。以下是几种常见的实现方法: 递归实现树结构 递归是处理树结构的自然方式,尤其适用于具有未知深度的树。 class Tr…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现socket

php实现socket

PHP 实现 Socket 通信 PHP 可以通过 socket 扩展实现网络通信,支持 TCP/UDP 协议。以下是实现 Socket 通信的核心步骤和代码示例。 创建 TCP 服务器 //…

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Rat…

php实现表单

php实现表单

PHP 表单基础实现 创建一个简单的 PHP 表单需要 HTML 表单结构和 PHP 处理脚本。以下是一个完整的示例: HTML 表单部分 (form.html) <form actio…