PHP与MySQL的结合是Web开发中非常经典且强大的组合,尤其适合构建动态数据库驱动的网站,本文将通过一个实例教程,带你从零开始了解如何使用PHP与MySQL进行基本的数据库操作,包括连接数据库、创建表、插入数据、查询数据、更新数据和删除数据。

环境准备
在开始之前,确保你的开发环境中已经安装了PHP和MySQL,你可以使用集成环境如XAMPP、WAMP或MAMP来快速搭建本地开发环境,推荐使用代码编辑器如VS Code或Sublime Text来编写PHP代码。
连接MySQL数据库
PHP提供了多种方式连接MySQL数据库,其中最常用的是MySQLi和PDO,这里以MySQLi为例,展示如何连接到MySQL服务器。
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test_db";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功!";
?>这段代码首先定义了数据库连接的参数,然后使用mysqli类创建连接对象,如果连接失败,会输出错误信息并终止脚本;否则,显示“连接成功!”。
创建数据表
连接数据库后,我们可以使用PHP执行SQL语句来创建数据表,以下是一个创建用户表的示例:
<?php
$sql = "CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)";
if ($conn->query($sql) === TRUE) {
echo "数据表创建成功!";
} else {
echo "创建数据表错误: " . $conn->error;
}
?>这段代码定义了一个users表,包含id、username、email和reg_date四个字段。id是自增主键,reg_date默认为当前时间戳。

插入数据
创建表后,我们可以向表中插入数据,使用INSERT INTO语句结合PHP的预处理语句可以防止SQL注入:
<?php
$stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $email);
// 绑定参数并执行
$username = "john_doe";
$email = "john@example.com";
$stmt->execute();
echo "新记录插入成功!";
$stmt->close();
?>这里使用了预处理语句,是占位符,bind_param方法将变量绑定到占位符。"ss"表示两个参数都是字符串类型。
查询数据
查询数据是数据库操作中最常见的功能之一,以下代码展示了如何从users表中获取所有数据:
<?php
$sql = "SELECT id, username, email FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 输出每条数据
while($row = $result->fetch_assoc()) {
echo "ID: " . $row["id"]. " 用户名: " . $row["username"]. " 邮箱: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
?>fetch_assoc()方法将结果集关联到数组,while循环遍历所有数据行。
更新数据
使用UPDATE语句可以修改表中的数据,以下示例更新指定用户的邮箱:

<?php
$stmt = $conn->prepare("UPDATE users SET email=? WHERE username=?");
$stmt->bind_param("ss", $new_email, $username);
$new_email = "new_john@example.com";
$username = "john_doe";
$stmt->execute();
echo "记录更新成功!";
$stmt->close();
?>删除数据
使用DELETE语句可以删除表中的数据,以下代码删除指定用户:
<?php
$stmt = $conn->prepare("DELETE FROM users WHERE username=?");
$stmt->bind_param("s", $username);
$username = "john_doe";
$stmt->execute();
echo "记录删除成功!";
$stmt->close();
?>关闭数据库连接
完成所有操作后,记得关闭数据库连接以释放资源:
<?php $conn->close(); ?>
相关问答FAQs
Q1: 如何防止SQL注入攻击?
A1: 使用预处理语句(Prepared Statements)是防止SQL注入的最佳方式,通过mysqli或PDO的预处理语句,将变量与SQL语句分离,避免恶意代码直接拼接进SQL语句中,对用户输入进行验证和过滤也能提高安全性。
Q2: PHP连接MySQL时出现“Access denied”错误怎么办?
A2: 这个错误通常是由于用户名或密码错误,或者数据库用户没有足够的权限,检查$username和password是否正确,并确保该用户有访问指定数据库的权限,如果使用的是本地开发环境,默认用户名可能是root,密码可能为空。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/214334.html


