当前位置:首页 > 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();

错误处理与事务

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

php实现数据库查询

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 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php 实现锁

php 实现锁

PHP 实现锁的常见方法 文件锁(flock) 利用 flock 函数对文件进行独占锁定,适用于单机环境。 $fp = fopen("lockfile.lock", "w+"); if (flock…

php实现多态

php实现多态

多态的概念 多态是面向对象编程的三大特性之一,指同一个方法在不同类中有不同实现方式。PHP通过继承和接口实现多态。 通过继承实现多态 父类定义方法,子类重写该方法实现不同行为: class Ani…

php实现进度条

php实现进度条

PHP 实现进度条的方法 使用 HTML 和 CSS 结合 PHP 实现进度条 在 PHP 中,进度条通常通过 HTML 和 CSS 实现,PHP 负责计算进度并更新前端显示。 <di…

php 实现长轮询

php 实现长轮询

PHP 实现长轮询的方法 长轮询(Long Polling)是一种服务器推送技术,客户端发送请求后,服务器保持连接开放直到有新数据或超时。以下是实现步骤: 基础实现代码 创建一个简单的长轮询 PHP…

php实现批量删除

php实现批量删除

PHP 实现批量删除的方法 表单设计与前端交互 在 HTML 表单中使用复选框(checkbox)让用户选择要删除的项。每个复选框的 name 属性设置为数组形式(如 items[]),以便 PHP…