• PHP入门教程5:会话管理和数据库操作


    PHP入门教程5:会话管理和数据库操作

    在前几篇文章中,我们学习了PHP的基础语法、控制结构、函数的使用、数组和字符串的操作,以及文件处理和表单处理。本文将重点介绍PHP中的会话管理和数据库操作,这是构建动态网站和Web应用程序的重要内容。本文将包含以下几个部分:

    1. 会话管理
    2. 使用Cookies
    3. 数据库基础
    4. 连接数据库
    5. 执行SQL查询
    6. 防止SQL注入

    1. 会话管理

    会话管理用于在多个页面之间保存用户信息。PHP通过session来管理会话。

    启动会话

    使用 session_start() 函数启动会话。在使用会话变量之前必须调用该函数。

    
    session_start();
    $_SESSION["username"] = "小明";
    echo "会话已启动,用户名是: " . $_SESSION["username"];
    ?>
    
    销毁会话

    使用 session_destroy() 函数销毁会话。

    
    session_start();
    session_destroy();
    echo "会话已销毁";
    ?>
    

    2. 使用Cookies

    Cookies用于在客户端保存少量数据。PHP通过 setcookie() 函数设置Cookie。

    设置Cookie
    
    setcookie("username", "小明", time() + (86400 * 30), "/"); // 86400 = 1 天
    echo "Cookie 已设置";
    ?>
    
    读取Cookie
    
    if (isset($_COOKIE["username"])) {
        echo "用户名是: " . $_COOKIE["username"];
    } else {
        echo "未设置Cookie";
    }
    ?>
    
    删除Cookie
    
    setcookie("username", "", time() - 3600, "/");
    echo "Cookie 已删除";
    ?>
    

    3. 数据库基础

    PHP通常与MySQL数据库一起使用。我们需要以下几个步骤来操作数据库:

    1. 连接数据库
    2. 选择数据库
    3. 执行SQL查询
    4. 获取查询结果
    5. 关闭数据库连接

    4. 连接数据库

    使用 mysqli_connect() 函数连接数据库。

    
    $servername = "localhost";
    $username = "用户名";
    $password = "密码";
    $dbname = "数据库名";
    
    // 创建连接
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    
    // 检测连接
    if (!$conn) {
        die("连接失败: " . mysqli_connect_error());
    }
    echo "连接成功";
    ?>
    

    5. 执行SQL查询

    执行SQL查询需要使用 mysqli_query() 函数。

    插入数据
    
    $sql = "INSERT INTO Students (name, age) VALUES ('小明', 20)";
    
    if (mysqli_query($conn, $sql)) {
        echo "新记录插入成功";
    } else {
        echo "错误: " . $sql . "
    "
    . mysqli_error($conn); } ?>
    查询数据
    
    $sql = "SELECT id, name, age FROM Students";
    $result = mysqli_query($conn, $sql);
    
    if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {
            echo "id: " . $row["id"]. " - 姓名: " . $row["name"]. " - 年龄: " . $row["age"]. "
    "
    ; } } else { echo "0 结果"; } ?>
    更新数据
    
    $sql = "UPDATE Students SET age=21 WHERE name='小明'";
    
    if (mysqli_query($conn, $sql)) {
        echo "记录更新成功";
    } else {
        echo "错误: " . $sql . "
    "
    . mysqli_error($conn); } ?>
    删除数据
    
    $sql = "DELETE FROM Students WHERE name='小明'";
    
    if (mysqli_query($conn, $sql)) {
        echo "记录删除成功";
    } else {
        echo "错误: " . $sql . "
    "
    . mysqli_error($conn); } ?>

    6. 防止SQL注入

    SQL注入是通过将恶意SQL代码插入SQL查询字符串中来攻击数据库的一种方式。防止SQL注入的方法是使用准备语句和参数化查询。

    使用准备语句
    
    $stmt = $conn->prepare("INSERT INTO Students (name, age) VALUES (?, ?)");
    $stmt->bind_param("si", $name, $age);
    
    // 设置参数并执行
    $name = "小明";
    $age = 20;
    $stmt->execute();
    
    echo "新记录插入成功";
    
    $stmt->close();
    $conn->close();
    ?>
    

    小结

    在这篇文章中,我们学习了PHP中的会话管理和数据库操作,包括启动和销毁会话、设置和读取Cookies、连接数据库、执行SQL查询以及防止SQL注入的方法。这些内容是构建动态Web应用程序的核心。在下一篇文章中,我们将探讨PHP中的面向对象编程(OOP)。希望你能通过这个系列文章,逐步掌握PHP编程,并能应用于实际项目中。

  • 相关阅读:
    Chapter12 : Deep Learning Applied to Ligand-Based De Novo Drug Design
    基于.NetCore开发博客项目 StarBlog - (10) 图片瀑布流
    某网书籍信息爬虫
    6-爬虫-scrapy解析数据(使用css选择器解析数据、xpath 解析数据)、 配置文件
    sknearl-7处理文本数据
    企业搭建SCRM系统, 为什么要选择私有化部署方案?
    Redis源码与设计剖析 -- 18.Redis网络连接库分析
    Qt 利用海康摄像头的ISAPI协议进行抓图等操作
    接口测试方法论——WebSocket一点通
    NeurIPS 22|四分钟内就能训练目标检测器!( AGVM)
  • 原文地址:https://blog.csdn.net/u010986241/article/details/139800782