图解PHP & MySQL:服务器端Web开发入门

引言

PHP 和 MySQL 是 Web 开发中的黄金组合,PHP 负责服务器端脚本处理,MySQL 负责数据库管理。本篇文章将介绍如何使用 PHP 和 MySQL 创建一个简单的Web应用,包括设置开发环境、连接数据库、进行CRUD操作(创建、读取、更新、删除)等。

开发环境设置

  1. 安装 XAMPP/WAMP/MAMP:这些集成环境包含了Apache服务器、PHP和MySQL。

  2. 启动 Apache 和 MySQL:安装后,打开控制面板,启动 Apache 和 MySQL 服务。

创建数据库和表

使用 phpMyAdmin 或 MySQL 命令行创建一个数据库和表。

sql 复制代码
CREATE DATABASE myapp;

USE myapp;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    password VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

PHP 项目结构

创建项目文件夹,结构如下:

php 复制代码
myapp/
├── index.php
├── db.php
└── users.php

数据库连接 (db.php)

php 复制代码
<?php
$host = 'localhost';
$db = 'myapp';
$user = 'root';  // 默认的MySQL用户
$pass = '';      // 默认的MySQL密码,安装时设置

$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";

try {
    $pdo = new PDO($dsn, $user, $pass);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('Connection failed: ' . $e->getMessage());
}
?>

创建用户 (index.php)

php 复制代码
<?php
require 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $username = $_POST['username'];
    $email = $_POST['email'];
    $password = password_hash($_POST['password'], PASSWORD_BCRYPT);

    $sql = "INSERT INTO users (username, email, password) VALUES (?, ?, ?)";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$username, $email, $password]);

    echo "User created successfully!";
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Create User</title>
</head>
<body>
    <form method="post" action="">
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required>
        <br>
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required>
        <br>
        <label for="password">Password:</label>
        <input type="password" id="password" name="password" required>
        <br>
        <button type="submit">Create User</button>
    </form>
</body>
</html>

读取用户数据 (users.php)

php 复制代码
<?php
require 'db.php';

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Users</title>
</head>
<body>
    <h1>Users</h1>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Username</th>
            <th>Email</th>
            <th>Created At</th>
        </tr>
        <?php foreach ($users as $user): ?>
        <tr>
            <td><?php echo htmlspecialchars($user['id']); ?></td>
            <td><?php echo htmlspecialchars($user['username']); ?></td>
            <td><?php echo htmlspecialchars($user['email']); ?></td>
            <td><?php echo htmlspecialchars($user['created_at']); ?></td>
        </tr>
        <?php endforeach; ?>
    </table>
</body>
</html>

更新用户数据

在 index.php 中添加更新功能。

php 复制代码
<?php
require 'db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['update'])) {
        $id = $_POST['id'];
        $username = $_POST['username'];
        $email = $_POST['email'];
        $sql = "UPDATE users SET username = ?, email = ? WHERE id = ?";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$username, $email, $id]);
        echo "User updated successfully!";
    } else {
        // 创建用户的代码
    }
}

if (isset($_GET['id'])) {
    $id = $_GET['id'];
    $sql = "SELECT * FROM users WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$id]);
    $user = $stmt->fetch(PDO::FETCH_ASSOC);
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?php echo isset($user) ? 'Edit' : 'Create'; ?> User</title>
</head>
<body>
    <form method="post" action="">
        <?php if (isset($user)): ?>
            <input type="hidden" name="id" value="<?php echo $user['id']; ?>">
        <?php endif; ?>
        <label for="username">Username:</label>
        <input type="text" id="username" name="username" required value="<?php echo isset($user) ? htmlspecialchars($user['username']) : ''; ?>">
        <br>
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required value="<?php echo isset($user) ? htmlspecialchars($user['email']) : ''; ?>">
        <br>
        <button type="submit" name="<?php echo isset($user) ? 'update' : 'create'; ?>"><?php echo isset($user) ? 'Update' : 'Create'; ?> User</button>
    </form>
</body>
</html>

删除用户数据

在 users.php 中添加删除功能。

php 复制代码
<?php
require 'db.php';

if (isset($_GET['delete'])) {
    $id = $_GET['delete'];
    $sql = "DELETE FROM users WHERE id = ?";
    $stmt = $pdo->prepare($sql);
    $stmt->execute([$id]);
    header('Location: users.php');
}

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Users</title>
</head>
<body>
    <h1>Users</h1>
    <table border="1">
        <tr>
            <th>ID</th>
            <th>Username</th>
            <th>Email</th>
            <th>Created At</th>
            <th>Actions</th>
        </tr>
        <?php foreach ($users as $user): ?>
        <tr>
            <td><?php echo htmlspecialchars($user['id']); ?></td>
            <td><?php echo htmlspecialchars($user['username']); ?></td>
            <td><?php echo htmlspecialchars($user['email']); ?></td>
            <td><?php echo htmlspecialchars($user['created_at']); ?></td>
            <td>
                <a href="index.php?id=<?php echo $user['id']; ?>">Edit</a>
                <a href="users.php?delete=<?php echo $user['id']; ?>" onclick="return confirm('Are you sure?')">Delete</a>
            </td>
        </tr>
        <?php endforeach; ?>
    </table>
</body>
</html>

结论

通过以上步骤,我们创建了一个简单的用户管理系统,涵盖了创建、读取、更新和删除用户数据的基本操作。这只是PHP和MySQL开发的基础,实际应用中会涉及到更多复杂的功能和安全性考虑,如用户认证、输入验证等。希望本文能帮助你入门PHP和MySQL开发。

⭐️ 好书推荐

《图解PHP & MySQL 服务器端Web开发》

【内容简介】

欢迎使用更高效的方式来学习PHP和MySQL。PHP运行在Web服务器端,通过使用存储在MySQL数据库中的数据,使得网站可以为每一位访问者显示不同的定制页面。书中采用简单、直观的图示化讲解风格,并辅以简短的代码示例,使得读者能够轻松地使用PHP和MySQL开发网站;网站具有丰富的功能,允许访问者注册为会员、创建文章、编辑文章、上传图片、管理个人资料、发表评论或"点赞"帖子等等。学习内容:阅读和编写PHP代码 使用MySQL数据库存储数据 创建适合每位访问者的页面 构建内容管理系统或社交网络

📚 清华大学出版社购买链接:《图解PHP & MySQL 服务器端Web开发》

相关推荐
wangruofeng4 小时前
AI Models 1.1.0 发布,查大模型价格、对比模型和找 API 地址
前端·aigc·ai编程
wangruofeng4 小时前
给前端开发者的 100 个设计参考网站
前端·设计
星栈7 小时前
视频即代码,Remotion 能做什么、不能做什么
前端·音视频开发
广州华水科技7 小时前
单北斗GNSS位移监测系统的应用与技术解析
前端
用户47949283569157 小时前
从一句话或代码仓到可交互 HTML:开源 Agent 画图技能 Archify v3.2 实测与选型边界
前端·后端·面试
风骏时光牛马10 小时前
生成一个AI多模态标题,仅输出一条标题,无额外文字、问句、备选、配图、文案等任何附加内容,不需要其他的任务服务 只要标题。
前端
Decay__10 小时前
VMware 安装 SQL Server 双节点 AlwaysOn 可用性组教程 —— WSFC、AG 与侦听器完整部署(系列核心篇)
运维·数据库·sql·mysql·架构
wangruofeng10 小时前
从 GIF 到 AVIF:网页图片格式演进与 2026 年选型指南
前端·架构
清晨Coding11 小时前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js
鶴哥只手遮天11 小时前
《Electron 45.2.3 内核解剖》第 4 章 补丁体系:380 个补丁改了什么
前端·electron