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

用户界面

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

php实现图书

<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中实现验证码功能通常涉及生成随机字符串或数字,将其转换为图像,并通过会话(Session)进行验证。以下是几种常见的实现方式: 使用GD库生成图像验证码 GD库是PHP内置的…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php实现一个

php实现一个

PHP 实现一个简单的计算器 创建一个基本的计算器,支持加、减、乘、除运算。以下是一个完整的实现代码示例: <?php $result = ""; if ($_SERVER["REQUES…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php 路由实现的

php 路由实现的

PHP 路由实现方法 基于原生 PHP 实现路由 创建一个简单的路由解析器,通过解析 URL 路径来调用对应的控制器或函数。 // 定义路由表 $routes = [ '/' => '…

php 实现聊天功能

php 实现聊天功能

PHP 实现聊天功能的方法 使用 WebSocket 和 Ratchet 库 WebSocket 是实现实时聊天的理想选择。Ratchet 是一个 PHP 库,用于处理 WebSocket 连接。…