当前位置:首页 > PHP

php实现图书

2026-02-28 09:45:35PHP

PHP 实现图书管理系统

数据库设计

创建数据库表存储图书信息,基本字段包括图书ID、书名、作者、ISBN、出版日期、库存数量等。

CREATE TABLE books (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    author VARCHAR(255) NOT NULL,
    isbn VARCHAR(20) UNIQUE,
    publish_date DATE,
    quantity INT DEFAULT 0
);

连接数据库

使用PDO或MySQLi扩展连接MySQL数据库,建议使用PDO以获得更好的安全性和兼容性。

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

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

添加图书功能

创建表单收集图书信息,通过PHP处理表单提交并将数据插入数据库。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $title = $_POST['title'];
    $author = $_POST['author'];
    $isbn = $_POST['isbn'];
    $publish_date = $_POST['publish_date'];
    $quantity = $_POST['quantity'];

    $stmt = $pdo->prepare("INSERT INTO books (title, author, isbn, publish_date, quantity) VALUES (?, ?, ?, ?, ?)");
    $stmt->execute([$title, $author, $isbn, $publish_date, $quantity]);
}

显示图书列表

查询数据库中的所有图书并以表格形式展示。

$stmt = $pdo->query("SELECT * FROM books");
$books = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($books as $book) {
    echo "<tr>
            <td>{$book['title']}</td>
            <td>{$book['author']}</td>
            <td>{$book['isbn']}</td>
            <td>{$book['publish_date']}</td>
            <td>{$book['quantity']}</td>
          </tr>";
}

搜索功能

实现按书名或作者搜索图书的功能。

if (isset($_GET['search'])) {
    $search = '%' . $_GET['search'] . '%';
    $stmt = $pdo->prepare("SELECT * FROM books WHERE title LIKE ? OR author LIKE ?");
    $stmt->execute([$search, $search]);
    $books = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

借阅功能

创建借阅记录表并实现借阅逻辑,减少库存数量。

CREATE TABLE borrow_records (
    id INT AUTO_INCREMENT PRIMARY KEY,
    book_id INT,
    user_name VARCHAR(255),
    borrow_date DATE,
    return_date DATE,
    FOREIGN KEY (book_id) REFERENCES books(id)
);
if (isset($_POST['borrow'])) {
    $book_id = $_POST['book_id'];
    $user_name = $_POST['user_name'];
    $borrow_date = date('Y-m-d');

    $pdo->beginTransaction();
    try {
        $stmt = $pdo->prepare("INSERT INTO borrow_records (book_id, user_name, borrow_date) VALUES (?, ?, ?)");
        $stmt->execute([$book_id, $user_name, $borrow_date]);

        $stmt = $pdo->prepare("UPDATE books SET quantity = quantity - 1 WHERE id = ?");
        $stmt->execute([$book_id]);

        $pdo->commit();
    } catch (Exception $e) {
        $pdo->rollBack();
        echo "Error: " . $e->getMessage();
    }
}

安全性考虑

对所有用户输入进行验证和过滤,使用预处理语句防止SQL注入。

function sanitizeInput($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

用户界面

创建简洁的用户界面,包括导航栏、表单和表格展示区域。

<nav>
    <a href="index.php">图书列表</a>
    <a href="add_book.php">添加图书</a>
    <a href="borrow.php">借阅图书</a>
</nav>

<form action="search.php" method="get">
    <input type="text" name="search" placeholder="搜索书名或作者">
    <button type="submit">搜索</button>
</form>

扩展功能

可根据需要添加更多功能,如图书分类、预约系统、逾期计算、用户管理等。定期备份数据库确保数据安全,使用会话管理实现用户登录系统。

php实现图书

标签: 图书php
分享给朋友:

相关文章

php实现打印功能

php实现打印功能

PHP 实现打印功能的方法 PHP 可以通过多种方式实现打印功能,具体取决于打印的目标(如打印机、PDF、网页等)和需求(如直接打印、生成打印预览等)。以下是几种常见的实现方式: 使用 JavaS…

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现栈

php实现栈

栈的基本概念 栈(Stack)是一种遵循后进先出(LIFO)原则的数据结构。核心操作包括: push:元素入栈。 pop:元素出栈(返回并移除栈顶元素)。 peek:查看栈顶元素(不移…

php实现表单

php实现表单

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

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必…