当前位置:首页 > PHP

php实现图书

2026-02-14 10:36:45PHP

PHP实现图书管理系统

数据库设计

创建MySQL数据库表结构,包含图书信息、用户信息等基础表。图书表可包含字段:id(主键)、title(书名)、author(作者)、isbn(ISBN号)、publish_date(出版日期)、status(借阅状态)。

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,
    status ENUM('available', 'borrowed') DEFAULT 'available'
);

连接数据库

使用PDO或MySQLi扩展连接数据库,确保安全性。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());
}

图书添加功能

创建表单页面收集图书信息,后端处理表单提交并插入数据库。

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

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

图书查询功能

实现按书名、作者等条件查询图书,展示查询结果列表。

$search = isset($_GET['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);

图书借阅功能

更新图书状态为"borrowed",记录借阅人和借阅时间。

if (isset($_POST['borrow'])) {
    $bookId = $_POST['book_id'];
    $userId = $_SESSION['user_id'];

    $pdo->beginTransaction();
    try {
        $pdo->exec("UPDATE books SET status='borrowed' WHERE id=$bookId");
        $pdo->exec("INSERT INTO borrow_records (book_id, user_id, borrow_date) VALUES ($bookId, $userId, NOW())");
        $pdo->commit();
    } catch (Exception $e) {
        $pdo->rollBack();
    }
}

用户认证

实现用户登录、注册功能,使用session或token管理用户状态。

session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['login'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    $stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
    $stmt->execute([$username]);
    $user = $stmt->fetch();

    if ($user && password_verify($password, $user['password'])) {
        $_SESSION['user_id'] = $user['id'];
        $_SESSION['username'] = $user['username'];
    }
}

安全性考虑

对用户输入进行验证和过滤,防止SQL注入和XSS攻击。

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

$title = sanitizeInput($_POST['title']);

界面设计

使用HTML/CSS创建响应式界面,Bootstrap可快速搭建前端框架。

<form method="post" action="add_book.php">
    <div class="form-group">
        <label>书名</label>
        <input type="text" name="title" class="form-control" required>
    </div>
    <button type="submit" class="btn btn-primary">添加图书</button>
</form>

部署上线

配置服务器环境(如Apache/Nginx),上传代码到生产环境,设置数据库连接参数。

php实现图书

# 示例Apache配置
<VirtualHost *:80>
    ServerName library.example.com
    DocumentRoot /var/www/library
    <Directory /var/www/library>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

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

相关文章

php实现分页

php实现分页

PHP实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (int…

php实现搜索功能

php实现搜索功能

实现基本的搜索功能 在PHP中实现搜索功能通常涉及数据库查询。以下是一个简单的实现方式,假设使用MySQL数据库: <?php // 连接数据库 $conn = new mysqli('loc…

php实现登录

php实现登录

PHP 登录功能实现 数据库连接与用户表创建 创建一个数据库连接文件 db.php,用于管理数据库连接。MySQL 示例代码如下: <?php $host = 'localhost'; $db…

php 实现接口

php 实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不包含具体的实现。类可以实现(implement)接口,并必须实现接口中定义的所有方法。 定义接口 接口通…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUTO…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…