| 数据库问题 | ||
一、准备工作 安装PHP和MySQL: 在你的服务器上安装PHP和MySQL(或MariaDB,MySQL的一个分支)。 确保你的PHP环境已经配置好,并且可以通过Web服务器(如Apache或Nginx)访问。 创建数据库和表: 使用MySQL客户端(如MySQL Workbench或命令行)创建一个数据库和表。 例如,创建一个名为test_db的数据库和一个名为users的表。 CREATE DATABASE test_db; USE test_db; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); 二、PHP与MySQL的连接 使用mysqli扩展: mysqli是PHP的一个扩展,用于与MySQL数据库进行交互。 它提供了一个面向对象的接口和一个过程化的接口。 $servername = "localhost"; // 数据库服务器地址 $username = "root"; // 数据库用户名 $password = ""; // 数据库密码 $dbname = "test_db"; // 数据库名 // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; // 关闭连接 $conn->close(); ?> 三、执行SQL查询 插入数据: // 省略了连接部分的代码,假设你已经建立了连接 $sql = "INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "Error: " . $sql . " " . $conn->error; } $conn->close(); ?> 查询数据: // 省略了连接部分的代码 $sql = "SELECT id, username, email, created_at FROM users"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 输出数据 while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - 用户名: " . $row["username"]. " - 邮箱: " . $row["email"]. " - 创建时间: " . $row["created_at"]. " "; } } else { echo "0 结果"; } $conn->close(); ?> 更新数据: // 省略了连接部分的代码 $sql = "UPDATE users SET email='john_new@example.com' WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "Error: " . $sql . " " . $conn->error; } $conn->close(); ?> 删除数据: // 省略了连接部分的代码 $sql = "DELETE FROM users WHERE id=1"; if ($conn->query($sql) === TRUE) { echo "记录删除成功"; } else { echo "Error: " . $sql . " " . $conn->error; } $conn->close(); ?> 四、预处理语句和安全性 预防SQL注入: 使用预处理语句(prepared statements)和参数化查询来防止SQL注入攻击。 // 省略了连接部分的代码 // 准备和绑定 $stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)"); $stmt->bind_param("ss", $user, $email); $user = "jane_doe"; $email = "jane@example.com"; // 执行语句 $stmt->execute(); echo "新记录插入成功"; $stmt->close(); $conn->close(); ?> 五、错误处理 基本错误处理: 在执行数据库操作时,检查返回值并处理可能的错误。 异常处理(可选): 使用try-catch块来捕获和处理异常(需要PHP 7及以上版本和mysqli的面向对象风格)。 try { $conn = new mysqli($servername, $username, $password, $dbname); // 省略了其他操作代码 $conn->close(); } catch (mysqli_sql_exception $e) { echo "数据库错误: " . $e->getMessage(); } ?>
|







关注官方微信