杰瑞科技汇

PHP与MySQL如何快速入门?

PHP 与 MySQL 基础教程

第一部分:环境搭建

在开始编码之前,你需要在你的计算机上安装一个本地服务器环境,因为它包含运行 PHP 和 MySQL 所需的一切。

推荐工具:集成开发环境

对于初学者,最简单的方式是使用集成开发环境,它一键安装并配置好了 Apache (Web服务器), MySQL (数据库), 和 PHP。

  1. XAMPP (跨平台: Windows, macOS, Linux): 最流行,用户最多。
  2. MAMP (主要用于 macOS): 在 Mac 上非常流行。
  3. WAMP (仅限 Windows): 专为 Windows 设计。

安装步骤:

  1. 下载并运行安装程序。
  2. 按照提示完成安装,保持默认设置即可。
  3. 安装完成后,启动 XAMPP 控制面板,确保 ApacheMySQL 模块的 Start 按钮是绿色的,表示服务已启动。

测试环境: 打开你的浏览器,访问 http://localhosthttp://127.0.0.1,如果你能看到 XAMPP 的欢迎页面,说明环境搭建成功!


第二部分:PHP 基础

PHP 是一种在服务器端执行的脚本语言,当用户请求一个 PHP 页面时,服务器会执行 PHP 代码,然后将纯 HTML 结果发送到用户的浏览器。

你的第一个 PHP 脚本

  • 在 XAMPP 的安装目录下,找到 htdocs 文件夹,这是你的 Web 根目录。
  • htdocs 文件夹中创建一个新文件,命名为 index.php
  • 用代码编辑器(如 VS Code, Sublime Text)打开 index.php,输入以下代码:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">PHP 测试</title>
</head>
<body>
    <h1>欢迎来到 PHP 世界!</h1>
    <?php
        // 这是一个 PHP 代码块
        echo "<p>当前时间是: " . date("Y-m-d H:i:s") . "</p>";
        echo "<p>Hello, World!</p>";
    ?>
</body>
</html>
  • 保存文件,然后在浏览器中访问 http://localhost/index.php
  • 你应该看到: 一个标题,以及一段显示当前时间的动态文本和 "Hello, World!"。

代码解释:

  • <?php ... ?>:这是 PHP 代码的标记,所有 PHP 代码都必须写在这对标记之间。
  • 单行注释。
  • echo:PHP 的一个语言结构,用于向输出(通常是 HTML)发送一个或多个字符串。
  • 点号是 PHP 中的连接符,用于将字符串连接起来。
  • date("Y-m-d H:i:s"):一个内置函数,用于获取当前日期和时间,并按指定格式输出。

PHP 变量与数据类型

PHP 是一种弱类型语言,你不需要在声明变量时指定其类型。

<?php
    $name = "张三";      // 字符串
    $age = 25;          // 整数
    $price = 99.99;     // 浮点数
    $isStudent = true;  // 布尔值
    echo "姓名: " . $name . "<br>";
    echo "年龄: " . $age . "<br>";
    echo "价格: " . $price . "<br>";
    echo "是否为学生: " . ($isStudent ? "是" : "否") . "<br>";
?>

第三部分:MySQL 基础

MySQL 是一个关系型数据库管理系统,用于存储和管理数据。

创建数据库和表

  • 启动 XAMPP 控制面板,点击 MySQL 模块的 Admin 按钮,这会打开 phpMyAdmin,一个用于管理 MySQL 数据库的 Web 界面。
  • 在 phpMyAdmin 的主界面,点击顶部的 “新建” 选项卡。
  • “数据库名称” 输入框中输入 my_blog,然后点击 “创建”
  • 在左侧的数据库列表中,点击你刚创建的 my_blog 数据库。
  • 在右侧,点击 “在新数据库中创建表”
  • 输入表名 posts,并在“列数”中输入 3,然后点击 “执行”
  • 现在来定义这三列:
    • id:
      • 类型: INT
      • 长度/值: 11
      • 属性: UNSIGNED
      • 索引: PRIMARY (并勾选 A_I - AUTO_INCREMENT,表示自动递增)
    • title:
      • 类型: VARCHAR
      • 长度/值: 255
    • content:
      • 类型: TEXT
  • 点击 “保存”,你的 posts 表就创建好了!

第四部分:连接 PHP 与 MySQL

现在是最关键的部分:让 PHP 代码与 MySQL 数据库进行通信。

创建数据库连接文件

htdocs 文件夹中创建一个新文件夹 db_conn,并在其中创建一个文件 connect.php

<?php
// 1. 定义数据库连接参数
$servername = "localhost"; // 或 "127.0.0.1"
$username = "root";       // 默认用户名
$password = "";           // 默认密码 (XAMPP默认为空)
$dbname = "my_blog";      // 我们创建的数据库名
// 2. 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 3. 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
// echo "连接成功!"; // 可以取消注释来测试连接是否成功
?>

数据查询操作

创建一个新文件 read_posts.php,用于从数据库中读取所有文章并显示出来。

<?php
// 引入数据库连接文件
require_once 'db_conn/connect.php';
// SQL 查询语句,用于获取所有文章
$sql = "SELECT id, title, content FROM posts";
$result = $conn->query($sql);
// 检查查询结果中是否有数据
if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        // fetch_assoc() 会获取一行数据作为一个关联数组
        echo "<h2>" . htmlspecialchars($row["title"]) . "</h2>";
        echo "<p>" . nl2br(htmlspecialchars($row["content"])) . "</p>";
        echo "<hr>";
    }
} else {
    echo "暂无文章";
}
// 关闭连接
$conn->close();
?>

代码解释:

  • require_once 'db_conn/connect.php';:引入我们的数据库连接文件,避免重复连接。
  • $conn->query($sql):执行 SQL 查询。
  • $result->num_rows:返回查询结果中的行数。
  • $result->fetch_assoc():从结果集中获取一行作为关联数组(键名是列名)。
  • htmlspecialchars():一个非常重要的安全函数,用于防止 XSS (跨站脚本) 攻击,它会将特殊字符转换为 HTML 实体。
  • nl2br():将换行符 \n 转换为 HTML 的 <br> 标签,以便在网页上正确显示段落。
  • $conn->close():关闭数据库连接,这是一个好习惯。

数据插入操作

创建一个新文件 create_post.php,用于向数据库中插入一篇新文章。

<?php
require_once 'db_conn/connect.php';
// 检查表单是否提交
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    // 从 POST 请求中获取数据
    $title = $_POST['title'];
    $content = $_POST['content'];
    // 使用预处理语句来防止 SQL 注入
    $stmt = $conn->prepare("INSERT INTO posts (title, content) VALUES (?, ?)");
    $stmt->bind_param("ss", $title, $content); // "ss" 表示两个字符串参数
    // 执行并检查
    if ($stmt->execute()) {
        echo "新文章创建成功!<a href='read_posts.php'>查看文章</a>";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    $stmt->close();
}
$conn->close();
?>
<!-- HTML 表单 -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">创建新文章</title>
</head>
<body>
    <h2>创建新文章</h2>
    <form action="create_post.php" method="post">
        <label for="title">标题:</label><br>
        <input type="text" id="title" name="title" required><br><br>
        <label for="content">内容:</label><br>
        <textarea id="content" name="content" rows="10" cols="50" required></textarea><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

代码解释:

  • $_POST:一个 PHP 超全局变量,用于收集通过 method="post" 提交的表单数据。
  • 预处理语句:这是防止 SQL 注入攻击的最佳实践,它先将 SQL 模板发送给数据库,然后再绑定变量,数据库会将其视为数据而不是可执行的 SQL 代码。
  • $stmt->prepare():准备一个 SQL 语句。 是占位符。
  • $stmt->bind_param():将变量绑定到预处理语句的占位符上,第一个参数 "ss" 表示接下来的两个变量都是字符串类型。
  • $stmt->execute():执行预处理语句。

第五部分:总结与进阶

你已经完成了 PHP 与 MySQL 的基础学习,掌握了:

  • 环境搭建:使用 XAMPP。
  • PHP 基础:语法、变量、echo、函数。
  • MySQL 基础:创建数据库和表。
  • 核心操作
    • 连接new mysqli()
    • 查询SELECT + query() + fetch_assoc()
    • 插入INSERT + 预处理语句 (prepare, bind_param, execute)。
    • 安全htmlspecialchars()预处理语句 是必须掌握的安全技能。

下一步可以学习什么?

  1. 更新数据:学习 UPDATE 语句,结合 WHERE 条件来修改特定的记录。
  2. 删除数据:学习 DELETE 语句,同样需要 WHERE 条件来指定要删除的记录。
  3. 分页:当数据很多时,如何实现“上一页/下一页”功能。
  4. 用户认证:创建登录和注册系统,学习 SESSION 的使用。
  5. 框架:学习使用现代 PHP 框架(如 Laravel, Symfony),它们提供了更强大、更安全、更高效的开发方式,可以让你避免“重复造轮子”。

这个教程为你打下了坚实的基础,现在可以开始动手创建你自己的动态网站了!祝你编码愉快!

分享:
扫描分享到社交APP
上一篇
下一篇