跳转到内容

PHP数据库基础

来自代码酷
Admin留言 | 贡献2025年5月2日 (五) 00:28的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

PHP数据库基础[编辑 | 编辑源代码]

PHP数据库操作是Web开发中的核心技能之一,它允许开发者通过PHP脚本与数据库进行交互,实现数据的存储、查询、更新和删除。本教程将介绍PHP数据库操作的基础知识,包括连接数据库、执行SQL查询以及处理结果集等内容。

介绍[编辑 | 编辑源代码]

在Web应用中,数据库用于存储和管理数据。PHP支持多种数据库系统,如MySQL、PostgreSQL、SQLite等。通过PHP的数据库扩展(如PDO或MySQLi),开发者可以方便地与数据库交互。

PHP数据库操作主要包括以下步骤: 1. 连接数据库 2. 执行SQL查询 3. 处理查询结果 4. 关闭数据库连接

连接数据库[编辑 | 编辑源代码]

PHP提供了多种方式连接数据库,最常见的是使用PDO(PHP Data Objects)或MySQLi扩展。

使用PDO连接数据库[编辑 | 编辑源代码]

PDO是一个数据库访问抽象层,支持多种数据库系统。以下是一个使用PDO连接MySQL数据库的示例:

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

try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
?>

使用MySQLi连接数据库[编辑 | 编辑源代码]

MySQLi是专门为MySQL设计的扩展,支持面向对象和面向过程两种编程风格。以下是面向对象的示例:

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

$conn = new mysqli($host, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

执行SQL查询[编辑 | 编辑源代码]

连接数据库后,可以执行SQL查询。以下是使用PDO和MySQLi执行查询的示例。

使用PDO执行查询[编辑 | 编辑源代码]

<?php
$sql = "SELECT * FROM users";
$stmt = $conn->query($sql);

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

使用MySQLi执行查询[编辑 | 编辑源代码]

<?php
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "ID: " . $row['id'] . ", Name: " . $row['name'] . "<br>";
    }
} else {
    echo "0 results";
}
?>

预处理语句[编辑 | 编辑源代码]

预处理语句可以防止SQL注入攻击,并提高查询效率。

PDO预处理示例[编辑 | 编辑源代码]

<?php
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);

$name = "John Doe";
$email = "john@example.com";
$stmt->execute();

echo "New record created successfully";
?>

MySQLi预处理示例[编辑 | 编辑源代码]

<?php
$sql = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $name, $email);

$name = "John Doe";
$email = "john@example.com";
$stmt->execute();

echo "New record created successfully";
?>

事务处理[编辑 | 编辑源代码]

事务用于确保一组SQL操作要么全部成功,要么全部失败。

PDO事务示例[编辑 | 编辑源代码]

<?php
try {
    $conn->beginTransaction();

    $conn->exec("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')");
    $conn->exec("INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com')");

    $conn->commit();
    echo "Transaction completed successfully";
} catch (Exception $e) {
    $conn->rollBack();
    echo "Transaction failed: " . $e->getMessage();
}
?>

实际案例[编辑 | 编辑源代码]

假设我们正在开发一个简单的用户管理系统,需要实现以下功能: 1. 添加用户 2. 查询用户列表 3. 更新用户信息 4. 删除用户

以下是一个完整的示例:

<?php
// 连接数据库
$conn = new PDO("mysql:host=localhost;dbname=test_db", "root", "");

// 添加用户
function addUser($name, $email) {
    global $conn;
    $sql = "INSERT INTO users (name, email) VALUES (?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->execute([$name, $email]);
    return $conn->lastInsertId();
}

// 查询用户列表
function getUsers() {
    global $conn;
    $stmt = $conn->query("SELECT * FROM users");
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

// 使用示例
addUser("John Doe", "john@example.com");
$users = getUsers();
print_r($users);
?>

数据库操作流程图[编辑 | 编辑源代码]

以下是PHP数据库操作的典型流程:

graph TD A[开始] --> B[连接数据库] B --> C{连接成功?} C -->|是| D[执行SQL查询] C -->|否| E[处理错误] D --> F[处理结果] F --> G[关闭连接] G --> H[结束] E --> H

总结[编辑 | 编辑源代码]

PHP数据库操作是Web开发的基础技能。通过PDO或MySQLi扩展,开发者可以安全高效地与数据库交互。关键点包括: 1. 使用预处理语句防止SQL注入 2. 合理使用事务保证数据一致性 3. 正确处理错误和异常 4. 及时关闭数据库连接

掌握这些基础知识后,可以进一步学习更高级的数据库操作技巧,如ORM、查询优化等。