PHP怎么连数据库然后写数据,简单点操作步骤讲解
- 问答
- 2025-12-25 12:43:04
- 1
PHP 操作数据库就像是你让一个助手(PHP)去一个文件柜(数据库)里取东西或者存东西,为了让助手能完成这个工作,你需要做几件事:告诉助手文件柜在哪里(连接数据库),告诉助手要对哪个文件夹操作(选择数据表),然后给他具体的指令(增删改查的 SQL 语句),下面我们就一步步来。
第一步:准备好你的“文件柜”——数据库
在你写 PHP 代码之前,你得先有一个数据库,这个通常在你的网站空间提供商的后台(cPanel)里可以创建,或者如果你在自己电脑上测试,可能用的是 XAMPP 或宝塔面板之类的工具,假设你已经创建好了一个数据库,名字叫 my_test_db,里面有一张表叫 users,这张表有两个字段:id 和 name。
第二步:连接数据库——让助手找到文件柜
这是最关键的一步,如果连接不上,后面的一切都白搭,在 PHP 里,我们使用 mysqli 这个扩展来连接 MySQL 数据库(这是最常见的数据库类型),你需要四个信息才能连上:
- 数据库所在的服务器的地址(通常是
localhost,意思是就在同一台机器上)。 - 用户名(
root)。 - 密码。
- 数据库名(刚才说的
my_test_db)。
连接数据库的代码长这样:

<?php
$servername = "localhost"; // 服务器地址
$username = "root"; // 数据库用户名
$password = "your_password"; // 数据库密码,自己电脑测试root可能没密码,就是空字符串""
$dbname = "my_test_db"; // 数据库名
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败啦: " . $conn->connect_error); // 如果失败,就显示错误信息并停止执行
}
echo "连接成功!"; // 成功的话会显示这个
?>
把上面代码里的 your_password 换成你数据库的真实密码,如果密码为空,就写成 $password = "";,这段代码运行后,如果看到“连接成功!”,恭喜你,第一步完成了,变量 $conn 就是你通往数据库的“通道”,后面的操作都要用它。
第三步:准备 SQL 语句——给助手下指令
现在通道有了,我们要告诉数据库干什么,我们是要写入数据,所以用的是 SQL 语言中的 INSERT 语句,假设我们要往 users 表里插入一条新数据,名字叫“张三”。
SQL 语句就是这样:
INSERT INTO users (name) VALUES ('张三')
在 PHP 里,我们把这个语句存到一个变量里,方便后面使用。

$sql = "INSERT INTO users (name) VALUES ('张三')";
如果你想插入变量,比如用户通过网页表单提交的名字,可以这样(假设用户提交的名字保存在变量 $user_name 里):
$user_name = "李四"; // 这个值通常是从 $_POST['name'] 这样的表单数据里来的
$sql = "INSERT INTO users (name) VALUES ('$user_name')";
重要提醒: 直接这样把变量放进 SQL 语句有严重的安全风险(叫做“SQL注入攻击”),坏人可以借此破坏你的数据库,在正式项目中,绝对不能这么做!正确的方法是使用“预处理语句”,下面会讲一个简单的例子。
第四步:执行指令并检查结果
指令准备好了,现在通过刚才建立的连接 $conn 来执行它,我们用 query() 方法。
if ($conn->query($sql) === TRUE) {
echo "新记录插入成功啦!";
} else {
echo "出错啦: " . $sql . "<br>" . $conn->error;
}
$conn->query($sql) 这行代码就是真正执行插入操作的地方,如果返回 TRUE,说明成功了;如果返回 FALSE,说明失败了,我们可以用 $conn->error 来查看具体的错误信息是什么,方便调试。

第五步:关闭连接——让助手下班
所有操作都做完之后,一个好习惯是手动关闭数据库连接,释放资源。
$conn->close();
一个更安全一点的写法(预处理语句)
前面提到直接拼接变量有风险,这里给出一个简单的预处理语句的例子,这才是你应该在真实项目中使用的方法,还以插入名字为例:
// 假设名字来自用户输入,$_POST['username']
$user_name = "王五";
// 1. 准备SQL语句,用问号 `?` 占位,代表将来要插入的值
$sql = "INSERT INTO users (name) VALUES (?)";
// 2. 预处理语句
$stmt = $conn->prepare($sql);
// 3. 绑定参数。 "s" 表示我们要传入的值是字符串(string)类型,如果有多个参数,比如还有年龄(整数),就用 "si"。
$stmt->bind_param("s", $user_name);
// 4. 执行语句
if ($stmt->execute()) {
echo "新记录插入成功啦!(安全版)";
} else {
echo "出错啦: " . $stmt->error;
}
// 5. 关闭预处理语句和连接
$stmt->close();
$conn->close();
这个写法虽然多了一两步,但它把数据和指令分开了,就像把信纸和信封分开处理一样,从根本上防止了 SQL 注入,非常安全。
总结一下最简单的操作步骤:
- 用
new mysqli(...)连上数据库,得到$conn。 - 写好你的
INSERT INTO ...SQL 语句,存到$sql变量里。强烈建议用预处理语句的方式写。 - 用
$conn->query($sql)或预处理语句的execute()方法来执行。 - 根据返回结果判断成功还是失败。
- 用
$conn->close()关闭连接。
你就把这五步当成一个固定的流程,每次要写数据的时候,就按照这个流程走一遍,刚开始可能会觉得有点绕,多写几次就熟悉了,最重要的是,一定要记住使用预处理语句来保证安全,这是新手最容易忽略也最重要的一点。
本文由称怜于2025-12-25发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:http://waw.haoid.cn/wenda/68169.html
