简体中文 繁體中文 English Deutsch 한국 사람 بالعربية TÜRKÇE português คนไทย Français Japanese

站内搜索

搜索

活动公告

通知:为庆祝网站一周年,将在5.1日与5.2日开放注册,具体信息请见后续详细公告
04-22 00:04
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

phpStudy连接数据库完全教程 从基础配置到代码实现轻松掌握数据库管理技能解决开发环境搭建难题

SunJu_FaceMall

3万

主题

1174

科技点

3万

积分

白金月票

碾压王

积分
32796

立华奏

发表于 2025-8-24 13:10:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
引言

在Web开发过程中,数据库操作是不可或缺的一环。phpStudy作为一款集成了Apache、PHP、MySQL等组件的开发环境,为PHP开发者提供了便捷的本地开发解决方案。然而,许多初学者在使用phpStudy时常常面临数据库连接的困扰。本文将从基础配置到代码实现,全面介绍如何使用phpStudy连接数据库,帮助读者轻松掌握数据库管理技能,解决开发环境搭建难题。

phpStudy简介

phpStudy是一个PHP调试环境的程序集成包,它集成了Apache、PHP、MySQL、phpMyAdmin等工具,无需配置即可直接使用。phpStudy支持多种PHP版本切换,满足不同项目的开发需求,是Windows平台上非常流行的PHP开发环境。

phpStudy的主要特点

• 一键安装,无需复杂配置
• 支持多版本PHP切换
• 集成MySQL数据库和phpMyAdmin管理工具
• 内置常用开发工具和扩展
• 支持虚拟主机配置

phpStudy基础配置

1. 安装phpStudy

首先,我们需要从官方网站下载phpStudy安装包。安装过程非常简单,只需按照安装向导一步步操作即可。

1. 访问phpStudy官网(https://www.xp.cn/)
2. 下载最新版本的phpStudy
3. 运行安装程序,按照提示完成安装

2. 启动phpStudy

安装完成后,双击桌面上的phpStudy图标启动程序。在主界面中,点击”启动”按钮,启动Apache和MySQL服务。

3. 检查服务状态

启动服务后,确保Apache和MySQL的状态显示为”运行中”。如果服务启动失败,可能是端口被占用,可以尝试修改端口设置。

4. 访问phpMyAdmin

点击phpStudy主界面上的”数据库管理”按钮,或直接在浏览器中访问http://localhost/phpMyAdmin,即可打开phpMyAdmin管理界面。

默认的用户名是”root”,密码为空。如果无法登录,请检查MySQL服务是否正常运行。

数据库基础配置

1. 创建数据库

在phpMyAdmin界面中,我们可以轻松创建数据库:

1. 点击”新建”按钮
2. 输入数据库名称,例如”test_db”
3. 选择字符集(通常选择utf8_general_ci或utf8mb4_general_ci)
4. 点击”创建”按钮

2. 创建数据表

创建数据库后,我们需要创建数据表:

1. 选择刚创建的数据库”test_db”
2. 点击”新建”创建数据表
3. 输入表名,例如”users”
4. 设置字段数量,例如4个(id, username, email, password)
5. 点击”执行”按钮

接下来,为每个字段设置属性:

• id:INT类型,主键,自增
• username:VARCHAR类型,长度50
• email:VARCHAR类型,长度100
• password:VARCHAR类型,长度255

设置完成后,点击”保存”按钮。

3. 插入测试数据

为了后续测试,我们可以插入一些测试数据:

1. 点击”插入”选项卡
2. 填写测试数据
3. 点击”执行”按钮

PHP连接MySQL数据库

1. 使用MySQLi扩展连接数据库

MySQLi是MySQL Improved的缩写,是PHP中用于连接MySQL数据库的扩展之一。下面是使用MySQLi连接数据库的代码示例:
  1. <?php
  2. // 数据库连接信息
  3. $host = 'localhost'; // 数据库服务器地址
  4. $username = 'root'; // 数据库用户名
  5. $password = ''; // 数据库密码
  6. $database = 'test_db'; // 数据库名称
  7. // 创建连接
  8. $conn = new mysqli($host, $username, $password, $database);
  9. // 检查连接是否成功
  10. if ($conn->connect_error) {
  11.     die("连接失败: " . $conn->connect_error);
  12. }
  13. echo "连接成功!";
  14. // 设置字符集
  15. $conn->set_charset("utf8");
  16. // 执行SQL查询
  17. $sql = "SELECT * FROM users";
  18. $result = $conn->query($sql);
  19. if ($result->num_rows > 0) {
  20.     // 输出数据
  21.     while($row = $result->fetch_assoc()) {
  22.         echo "ID: " . $row["id"]. " - 用户名: " . $row["username"]. " - 邮箱: " . $row["email"]. "<br>";
  23.     }
  24. } else {
  25.     echo "0 结果";
  26. }
  27. // 关闭连接
  28. $conn->close();
  29. ?>
复制代码

2. 使用PDO扩展连接数据库

PDO(PHP Data Objects)是PHP中另一种数据库连接方式,它提供了一个数据访问抽象层,使得无论使用什么数据库,都可以使用相同的函数来查询和获取数据。
  1. <?php
  2. // 数据库连接信息
  3. $host = 'localhost';
  4. $dbname = 'test_db';
  5. $username = 'root';
  6. $password = '';
  7. try {
  8.     // 创建PDO连接
  9.     $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
  10.    
  11.     // 设置PDO错误模式为异常
  12.     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  13.    
  14.     echo "连接成功!";
  15.    
  16.     // 执行SQL查询
  17.     $stmt = $pdo->query("SELECT * FROM users");
  18.    
  19.     // 设置获取模式为关联数组
  20.     $stmt->setFetchMode(PDO::FETCH_ASSOC);
  21.    
  22.     // 输出数据
  23.     foreach($stmt->fetchAll() as $row) {
  24.         echo "ID: " . $row["id"]. " - 用户名: " . $row["username"]. " - 邮箱: " . $row["email"]. "<br>";
  25.     }
  26.    
  27. } catch(PDOException $e) {
  28.     echo "连接失败: " . $e->getMessage();
  29. }
  30. // 关闭连接
  31. $pdo = null;
  32. ?>
复制代码

3. 数据库操作示例

下面是一个完整的数据库操作示例,包括插入、更新、删除和查询数据:
  1. <?php
  2. // 数据库连接信息
  3. $host = 'localhost';
  4. $dbname = 'test_db';
  5. $username = 'root';
  6. $password = '';
  7. try {
  8.     // 创建PDO连接
  9.     $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
  10.     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  11.    
  12.     // 插入数据
  13.     $sql = "INSERT INTO users (username, email, password) VALUES (?, ?, ?)";
  14.     $stmt = $pdo->prepare($sql);
  15.    
  16.     $username = "john_doe";
  17.     $email = "john@example.com";
  18.     $password = password_hash("123456", PASSWORD_DEFAULT); // 密码加密
  19.    
  20.     $stmt->execute([$username, $email, $password]);
  21.     echo "新记录插入成功!<br>";
  22.    
  23.     // 更新数据
  24.     $sql = "UPDATE users SET email = ? WHERE username = ?";
  25.     $stmt = $pdo->prepare($sql);
  26.    
  27.     $new_email = "john.doe@example.com";
  28.     $username = "john_doe";
  29.    
  30.     $stmt->execute([$new_email, $username]);
  31.     echo "记录更新成功!<br>";
  32.    
  33.     // 删除数据
  34.     $sql = "DELETE FROM users WHERE username = ?";
  35.     $stmt = $pdo->prepare($sql);
  36.    
  37.     $username = "user_to_delete";
  38.    
  39.     $stmt->execute([$username]);
  40.     echo "记录删除成功!<br>";
  41.    
  42.     // 查询数据
  43.     $stmt = $pdo->query("SELECT * FROM users");
  44.    
  45.     echo "<table border='1'>";
  46.     echo "<tr><th>ID</th><th>用户名</th><th>邮箱</th></tr>";
  47.    
  48.     while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  49.         echo "<tr>";
  50.         echo "<td>" . $row["id"] . "</td>";
  51.         echo "<td>" . $row["username"] . "</td>";
  52.         echo "<td>" . $row["email"] . "</td>";
  53.         echo "</tr>";
  54.     }
  55.    
  56.     echo "</table>";
  57.    
  58. } catch(PDOException $e) {
  59.     echo "错误: " . $e->getMessage();
  60. }
  61. // 关闭连接
  62. $pdo = null;
  63. ?>
复制代码

常见问题及解决方案

1. 连接失败问题

问题:连接数据库时出现”连接失败”错误。

可能原因及解决方案:

1. MySQL服务未启动:检查phpStudy中的MySQL服务是否已启动。
2. 用户名或密码错误:确认数据库用户名和密码是否正确。默认情况下,phpStudy的MySQL用户名为”root”,密码为空。
3. 数据库名称错误:确认数据库名称是否正确。
4. 端口被占用:如果3306端口被其他程序占用,可以修改MySQL端口。

2. 中文乱码问题

问题:从数据库读取的中文数据显示为乱码。

解决方案:

1. 确保数据库和表的字符集设置为utf8或utf8mb4。
2. 在连接数据库后,设置连接字符集:
  1. // MySQLi方式
  2. $conn->set_charset("utf8");
  3. // PDO方式
  4. $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
复制代码

1. 在HTML页面中设置字符集:
  1. <meta charset="utf-8">
复制代码

3. 密码加密问题

问题:如何安全地存储用户密码?

解决方案:

不要直接存储明文密码,应使用PHP的password_hash()和password_verify()函数进行密码加密和验证:
  1. <?php
  2. // 密码加密
  3. $password = "user_password";
  4. $hashed_password = password_hash($password, PASSWORD_DEFAULT);
  5. // 存储到数据库
  6. $sql = "INSERT INTO users (username, email, password) VALUES (?, ?, ?)";
  7. $stmt = $pdo->prepare($sql);
  8. $stmt->execute([$username, $email, $hashed_password]);
  9. // 密码验证
  10. $sql = "SELECT * FROM users WHERE username = ?";
  11. $stmt = $pdo->prepare($sql);
  12. $stmt->execute([$username]);
  13. $user = $stmt->fetch(PDO::FETCH_ASSOC);
  14. if ($user && password_verify($input_password, $user['password'])) {
  15.     echo "密码正确!";
  16. } else {
  17.     echo "密码错误!";
  18. }
  19. ?>
复制代码

4. SQL注入防护

问题:如何防止SQL注入攻击?

解决方案:

使用预处理语句(Prepared Statements)可以有效防止SQL注入:
  1. <?php
  2. // 不安全的方式(容易受到SQL注入攻击)
  3. $username = $_POST['username'];
  4. $password = $_POST['password'];
  5. $sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
  6. // 安全的方式(使用预处理语句)
  7. $sql = "SELECT * FROM users WHERE username = ? AND password = ?";
  8. $stmt = $pdo->prepare($sql);
  9. $stmt->execute([$username, $password]);
  10. $user = $stmt->fetch(PDO::FETCH_ASSOC);
  11. ?>
复制代码

实例演示:用户管理系统

下面是一个简单的用户管理系统示例,包含用户注册、登录和信息显示功能。

1. 创建数据库表

首先,我们需要创建一个用户表:
  1. CREATE TABLE `users` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `username` varchar(50) NOT NULL,
  4.   `email` varchar(100) NOT NULL,
  5.   `password` varchar(255) NOT NULL,
  6.   `created_at` timestamp NOT NULL DEFAULT current_timestamp(),
  7.   PRIMARY KEY (`id`),
  8.   UNIQUE KEY `username` (`username`),
  9.   UNIQUE KEY `email` (`email`)
  10. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
复制代码

2. 数据库连接文件(db.php)

创建一个数据库连接文件,方便在其他文件中引用:
  1. <?php
  2. // db.php
  3. $host = 'localhost';
  4. $dbname = 'test_db';
  5. $username = 'root';
  6. $password = '';
  7. try {
  8.     $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
  9.     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  10. } catch(PDOException $e) {
  11.     die("数据库连接失败: " . $e->getMessage());
  12. }
  13. ?>
复制代码

3. 用户注册页面(register.php)
  1. <?php
  2. // register.php
  3. require_once 'db.php';
  4. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  5.     $username = trim($_POST['username']);
  6.     $email = trim($_POST['email']);
  7.     $password = $_POST['password'];
  8.     $confirm_password = $_POST['confirm_password'];
  9.    
  10.     // 验证输入
  11.     if (empty($username) || empty($email) || empty($password)) {
  12.         $error = "所有字段都必须填写!";
  13.     } elseif ($password != $confirm_password) {
  14.         $error = "两次输入的密码不匹配!";
  15.     } elseif (strlen($password) < 6) {
  16.         $error = "密码长度至少为6个字符!";
  17.     } else {
  18.         try {
  19.             // 检查用户名是否已存在
  20.             $stmt = $pdo->prepare("SELECT id FROM users WHERE username = ?");
  21.             $stmt->execute([$username]);
  22.             
  23.             if ($stmt->fetch()) {
  24.                 $error = "用户名已存在!";
  25.             } else {
  26.                 // 检查邮箱是否已存在
  27.                 $stmt = $pdo->prepare("SELECT id FROM users WHERE email = ?");
  28.                 $stmt->execute([$email]);
  29.                
  30.                 if ($stmt->fetch()) {
  31.                     $error = "邮箱已被注册!";
  32.                 } else {
  33.                     // 密码加密
  34.                     $hashed_password = password_hash($password, PASSWORD_DEFAULT);
  35.                     
  36.                     // 插入用户数据
  37.                     $sql = "INSERT INTO users (username, email, password) VALUES (?, ?, ?)";
  38.                     $stmt = $pdo->prepare($sql);
  39.                     
  40.                     if ($stmt->execute([$username, $email, $hashed_password])) {
  41.                         $success = "注册成功!<a href='login.php'>点击登录</a>";
  42.                     } else {
  43.                         $error = "注册失败,请重试!";
  44.                     }
  45.                 }
  46.             }
  47.         } catch(PDOException $e) {
  48.             $error = "错误: " . $e->getMessage();
  49.         }
  50.     }
  51. }
  52. ?>
  53. <!DOCTYPE html>
  54. <html lang="zh-CN">
  55. <head>
  56.     <meta charset="UTF-8">
  57.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  58.     <title>用户注册</title>
  59.     <style>
  60.         body {
  61.             font-family: Arial, sans-serif;
  62.             line-height: 1.6;
  63.             margin: 0;
  64.             padding: 20px;
  65.             background-color: #f4f4f4;
  66.         }
  67.         .container {
  68.             max-width: 500px;
  69.             margin: 0 auto;
  70.             background: #fff;
  71.             padding: 20px;
  72.             border-radius: 5px;
  73.             box-shadow: 0 0 10px rgba(0,0,0,0.1);
  74.         }
  75.         h2 {
  76.             text-align: center;
  77.             color: #333;
  78.         }
  79.         .form-group {
  80.             margin-bottom: 15px;
  81.         }
  82.         label {
  83.             display: block;
  84.             margin-bottom: 5px;
  85.         }
  86.         input[type="text"], input[type="email"], input[type="password"] {
  87.             width: 100%;
  88.             padding: 8px;
  89.             border: 1px solid #ddd;
  90.             border-radius: 4px;
  91.             box-sizing: border-box;
  92.         }
  93.         input[type="submit"] {
  94.             width: 100%;
  95.             padding: 10px;
  96.             background: #5cb85c;
  97.             color: #fff;
  98.             border: none;
  99.             border-radius: 4px;
  100.             cursor: pointer;
  101.         }
  102.         input[type="submit"]:hover {
  103.             background: #4cae4c;
  104.         }
  105.         .error {
  106.             color: #d9534f;
  107.             margin-bottom: 15px;
  108.         }
  109.         .success {
  110.             color: #5cb85c;
  111.             margin-bottom: 15px;
  112.         }
  113.     </style>
  114. </head>
  115. <body>
  116.     <div class="container">
  117.         <h2>用户注册</h2>
  118.         
  119.         <?php if (isset($error)): ?>
  120.             <div class="error"><?php echo $error; ?></div>
  121.         <?php endif; ?>
  122.         
  123.         <?php if (isset($success)): ?>
  124.             <div class="success"><?php echo $success; ?></div>
  125.         <?php endif; ?>
  126.         
  127.         <form action="register.php" method="post">
  128.             <div class="form-group">
  129.                 <label for="username">用户名:</label>
  130.                 <input type="text" id="username" name="username" required>
  131.             </div>
  132.             
  133.             <div class="form-group">
  134.                 <label for="email">邮箱:</label>
  135.                 <input type="email" id="email" name="email" required>
  136.             </div>
  137.             
  138.             <div class="form-group">
  139.                 <label for="password">密码:</label>
  140.                 <input type="password" id="password" name="password" required>
  141.             </div>
  142.             
  143.             <div class="form-group">
  144.                 <label for="confirm_password">确认密码:</label>
  145.                 <input type="password" id="confirm_password" name="confirm_password" required>
  146.             </div>
  147.             
  148.             <div class="form-group">
  149.                 <input type="submit" value="注册">
  150.             </div>
  151.         </form>
  152.         
  153.         <p>已有账号?<a href="login.php">点击登录</a></p>
  154.     </div>
  155. </body>
  156. </html>
复制代码

4. 用户登录页面(login.php)
  1. <?php
  2. // login.php
  3. session_start();
  4. require_once 'db.php';
  5. // 如果用户已经登录,重定向到欢迎页面
  6. if (isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true) {
  7.     header("location: welcome.php");
  8.     exit;
  9. }
  10. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  11.     $username = trim($_POST['username']);
  12.     $password = $_POST['password'];
  13.    
  14.     if (empty($username) || empty($password)) {
  15.         $error = "用户名和密码不能为空!";
  16.     } else {
  17.         try {
  18.             $sql = "SELECT id, username, password FROM users WHERE username = ?";
  19.             $stmt = $pdo->prepare($sql);
  20.             $stmt->execute([$username]);
  21.             
  22.             if ($stmt->rowCount() == 1) {
  23.                 if ($row = $stmt->fetch()) {
  24.                     $id = $row["id"];
  25.                     $username = $row["username"];
  26.                     $hashed_password = $row["password"];
  27.                     
  28.                     if (password_verify($password, $hashed_password)) {
  29.                         // 密码正确,启动会话
  30.                         session_start();
  31.                         
  32.                         // 存储会话数据
  33.                         $_SESSION["loggedin"] = true;
  34.                         $_SESSION["id"] = $id;
  35.                         $_SESSION["username"] = $username;
  36.                         
  37.                         // 重定向到欢迎页面
  38.                         header("location: welcome.php");
  39.                     } else {
  40.                         $error = "密码不正确!";
  41.                     }
  42.                 }
  43.             } else {
  44.                 $error = "用户名不存在!";
  45.             }
  46.         } catch(PDOException $e) {
  47.             $error = "错误: " . $e->getMessage();
  48.         }
  49.     }
  50. }
  51. ?>
  52. <!DOCTYPE html>
  53. <html lang="zh-CN">
  54. <head>
  55.     <meta charset="UTF-8">
  56.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  57.     <title>用户登录</title>
  58.     <style>
  59.         body {
  60.             font-family: Arial, sans-serif;
  61.             line-height: 1.6;
  62.             margin: 0;
  63.             padding: 20px;
  64.             background-color: #f4f4f4;
  65.         }
  66.         .container {
  67.             max-width: 500px;
  68.             margin: 0 auto;
  69.             background: #fff;
  70.             padding: 20px;
  71.             border-radius: 5px;
  72.             box-shadow: 0 0 10px rgba(0,0,0,0.1);
  73.         }
  74.         h2 {
  75.             text-align: center;
  76.             color: #333;
  77.         }
  78.         .form-group {
  79.             margin-bottom: 15px;
  80.         }
  81.         label {
  82.             display: block;
  83.             margin-bottom: 5px;
  84.         }
  85.         input[type="text"], input[type="password"] {
  86.             width: 100%;
  87.             padding: 8px;
  88.             border: 1px solid #ddd;
  89.             border-radius: 4px;
  90.             box-sizing: border-box;
  91.         }
  92.         input[type="submit"] {
  93.             width: 100%;
  94.             padding: 10px;
  95.             background: #5cb85c;
  96.             color: #fff;
  97.             border: none;
  98.             border-radius: 4px;
  99.             cursor: pointer;
  100.         }
  101.         input[type="submit"]:hover {
  102.             background: #4cae4c;
  103.         }
  104.         .error {
  105.             color: #d9534f;
  106.             margin-bottom: 15px;
  107.         }
  108.     </style>
  109. </head>
  110. <body>
  111.     <div class="container">
  112.         <h2>用户登录</h2>
  113.         
  114.         <?php if (isset($error)): ?>
  115.             <div class="error"><?php echo $error; ?></div>
  116.         <?php endif; ?>
  117.         
  118.         <form action="login.php" method="post">
  119.             <div class="form-group">
  120.                 <label for="username">用户名:</label>
  121.                 <input type="text" id="username" name="username" required>
  122.             </div>
  123.             
  124.             <div class="form-group">
  125.                 <label for="password">密码:</label>
  126.                 <input type="password" id="password" name="password" required>
  127.             </div>
  128.             
  129.             <div class="form-group">
  130.                 <input type="submit" value="登录">
  131.             </div>
  132.         </form>
  133.         
  134.         <p>还没有账号?<a href="register.php">点击注册</a></p>
  135.     </div>
  136. </body>
  137. </html>
复制代码

5. 欢迎页面(welcome.php)
  1. <?php
  2. // welcome.php
  3. session_start();
  4. // 检查用户是否已登录,如果未登录则重定向到登录页面
  5. if (!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true) {
  6.     header("location: login.php");
  7.     exit;
  8. }
  9. require_once 'db.php';
  10. // 获取用户信息
  11. try {
  12.     $sql = "SELECT username, email, created_at FROM users WHERE id = ?";
  13.     $stmt = $pdo->prepare($sql);
  14.     $stmt->execute([$_SESSION["id"]]);
  15.     $user = $stmt->fetch(PDO::FETCH_ASSOC);
  16. } catch(PDOException $e) {
  17.     die("错误: " . $e->getMessage());
  18. }
  19. ?>
  20. <!DOCTYPE html>
  21. <html lang="zh-CN">
  22. <head>
  23.     <meta charset="UTF-8">
  24.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  25.     <title>欢迎页面</title>
  26.     <style>
  27.         body {
  28.             font-family: Arial, sans-serif;
  29.             line-height: 1.6;
  30.             margin: 0;
  31.             padding: 20px;
  32.             background-color: #f4f4f4;
  33.         }
  34.         .container {
  35.             max-width: 800px;
  36.             margin: 0 auto;
  37.             background: #fff;
  38.             padding: 20px;
  39.             border-radius: 5px;
  40.             box-shadow: 0 0 10px rgba(0,0,0,0.1);
  41.         }
  42.         h2 {
  43.             color: #333;
  44.         }
  45.         .user-info {
  46.             margin: 20px 0;
  47.             padding: 15px;
  48.             background: #f9f9f9;
  49.             border-radius: 4px;
  50.         }
  51.         .user-info p {
  52.             margin: 5px 0;
  53.         }
  54.         .logout-btn {
  55.             display: inline-block;
  56.             padding: 8px 15px;
  57.             background: #d9534f;
  58.             color: #fff;
  59.             text-decoration: none;
  60.             border-radius: 4px;
  61.         }
  62.         .logout-btn:hover {
  63.             background: #c9302c;
  64.         }
  65.     </style>
  66. </head>
  67. <body>
  68.     <div class="container">
  69.         <h2>欢迎, <?php echo htmlspecialchars($_SESSION["username"]); ?>!</h2>
  70.         
  71.         <div class="user-info">
  72.             <p><strong>用户名:</strong> <?php echo htmlspecialchars($user["username"]); ?></p>
  73.             <p><strong>邮箱:</strong> <?php echo htmlspecialchars($user["email"]); ?></p>
  74.             <p><strong>注册时间:</strong> <?php echo $user["created_at"]; ?></p>
  75.         </div>
  76.         
  77.         <p>
  78.             <a href="logout.php" class="logout-btn">退出登录</a>
  79.         </p>
  80.     </div>
  81. </body>
  82. </html>
复制代码

6. 退出登录页面(logout.php)
  1. <?php
  2. // logout.php
  3. session_start();
  4. // 清除所有会话变量
  5. $_SESSION = array();
  6. // 销毁会话
  7. session_destroy();
  8. // 重定向到登录页面
  9. header("location: login.php");
  10. exit;
  11. ?>
复制代码

总结

通过本文的详细介绍,我们学习了如何使用phpStudy连接数据库,从基础配置到代码实现,全面掌握了数据库管理技能。主要内容包括:

1. phpStudy的安装和基础配置
2. 数据库和数据表的创建
3. 使用MySQLi和PDO扩展连接数据库
4. 常见问题及解决方案
5. 实际项目示例:用户管理系统

phpStudy作为一个集成开发环境,为PHP开发者提供了便捷的开发解决方案。掌握phpStudy连接数据库的技能,对于PHP开发者来说是非常重要的基础。希望本文能够帮助读者解决开发环境搭建难题,提高开发效率。

在实际开发过程中,我们还需要注意数据库安全性、性能优化等方面的问题。随着技术的不断发展,我们也需要不断学习新的知识和技能,以适应不断变化的开发需求。

最后,建议读者多动手实践,通过实际项目来巩固所学知识,提高自己的开发能力。祝大家学习愉快,开发顺利!
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

手机版|联系我们|小黑屋|TG频道|RSS |网站地图

Powered by Pixtech

© 2025-2026 Pixtech Team.

>