在开始利用PHP建数据库之前,需要确保开发环境已经配置妥当,必须安装PHP环境,可以选择集成开发环境如XAMPP、WAMP或MAMP,这些工具集成了PHP、MySQL服务器和Apache/Nginx服务器,简化了配置过程,需要确认MySQL数据库服务已启动,并且具备足够的权限来创建和管理数据库,建议使用代码编辑器如VS Code或Sublime Text,这些工具提供语法高亮和自动补全功能,能提高编码效率,建议在本地环境中进行测试,确保代码无误后再部署到服务器,避免因环境差异导致的问题。

连接MySQL服务器
PHP提供了多种方式连接MySQL服务器,其中最常用的是MySQLi和PDO扩展,MySQLi是MySQL的增强版,支持面向过程和面向对象两种编程风格,而PDO则提供了统一的数据库访问接口,支持多种数据库类型,以下是使用MySQLi面向对象方式连接数据库的示例代码:
$servername = "localhost";
$username = "root";
$password = "";
$conn = new mysqli($servername, $username, $password);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
这段代码首先定义了服务器名称、用户名和密码,然后创建了一个mysqli对象进行连接,如果连接失败,程序会输出错误信息并终止;否则,显示连接成功的提示。
创建数据库
连接成功后,可以使用SQL语句创建数据库,在PHP中,通过执行CREATE DATABASE语句来实现这一操作,以下是一个示例:
$sql = "CREATE DATABASE my_database";
if ($conn->query($sql) === TRUE) {
echo "数据库创建成功";
} else {
echo "创建数据库错误: " . $conn->error;
}
这里定义了一个SQL语句来创建名为my_database的数据库,并通过query()方法执行,如果执行成功,输出提示信息;否则,显示错误原因,需要注意的是,数据库名称应符合MySQL的命名规则,避免使用保留关键字。
选择数据库并创建表
创建数据库后,需要选择该数据库并进一步创建数据表,可以使用SELECT DATABASE语句选择数据库,然后通过CREATE TABLE语句定义表结构。
$conn->select_db("my_database");
$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;
}
这段代码首先选择了my_database数据库,然后创建了一个users表,包含id、username、email和reg_date四个字段,id字段为主键,并设置为自增,reg_date字段默认值为当前时间戳。
插入数据到表
创建表后,可以使用INSERT INTO语句向表中插入数据,以下是示例代码:

$sql = "INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) {
echo "数据插入成功";
} else {
echo "插入数据错误: " . $conn->error;
}
这里向users表中插入了一条用户记录,包含用户名和邮箱,如果插入成功,输出提示信息;否则,显示错误原因。
查询数据
查询数据是数据库操作中的常见需求,可以使用SELECT语句实现。
$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"]. " - Name: " . $row["username"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 结果";
}
这段代码查询了users表中的所有记录,并逐行输出id、username和email字段的值,如果查询结果为空,则输出提示信息。
更新和删除数据
更新数据使用UPDATE语句,删除数据使用DELETE语句,以下是更新数据的示例:
$sql = "UPDATE users SET email='john_new@example.com' WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "记录更新成功";
} else {
echo "更新错误: " . $conn->error;
}
删除数据的示例:
$sql = "DELETE FROM users WHERE id=1";
if ($conn->query($sql) === TRUE) {
echo "记录删除成功";
} else {
echo "删除错误: " . $conn->error;
}
执行这些操作时,务必确保WHERE条件正确,避免误操作。
关闭数据库连接
完成所有操作后,应关闭数据库连接以释放资源,可以使用close()方法实现:

$conn->close();
这一步虽然不是必需的,但良好的编程习惯要求在操作结束后关闭连接。
相关问答FAQs
Q1: 如何解决PHP连接MySQL时的“Access denied”错误?
A1: 这种错误通常是由于用户名或密码错误、权限不足或MySQL服务未启动导致的,首先检查连接信息是否正确,然后确保MySQL用户具有创建数据库和表的权限,如果问题依旧,可以尝试重置密码或重启MySQL服务。
Q2: 如何防止SQL注入攻击?
A2: SQL注入是一种常见的网络安全威胁,可以通过预处理语句(Prepared Statements)来防范,使用PDO或MySQLi的预处理语句功能,将SQL语句和数据分开处理,避免恶意代码被执行。
$stmt = $conn->prepare("INSERT INTO users (username, email) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $email);
$stmt->execute();
这样能有效防止SQL注入攻击。