PHP MySQL 插入数据学习笔记
前言
在Web应用程序中,将数据存储在数据库中是非常重要的一环。而插入(insert)数据是最基本也是最常见的操作之一,因为我们总是需要在数据库中添加新的数据行。
在PHP中,可以使用MySQLi或PDO等扩展来操作MySQL数据库。无论您使用哪种扩展,插入数据的过程都非常相似。下面将介绍如何使用MySQLi扩展插入数据。
插入数据流程
插入数据的流程大致分为以下几个步骤:
- 连接到数据库
- 构建INSERT语句
- 执行INSERT语句
- 关闭数据库连接
具体实现代码如下:
phpCopy Code// 1.连接到数据库
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 2.构建INSERT语句
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
// 3.执行INSERT语句
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
// 4.关闭数据库连接
$conn->close();
在上面的代码中,我们使用了MySQLi扩展来连接到数据库,构建INSERT语句,并执行语句。
示例
下面我们来举一个实际的例子,假设我们有一个用户注册页面,用户填写了姓名、密码和电子邮件地址后,我们需要将这些信息存储在一个MySQL数据库表中。
首先,需要创建一个名为users
的表,该表包含以下三列:
id
:主键,自动递增name
:VARCHAR类型,保存用户姓名email
:VARCHAR类型,保存用户邮箱password
:VARCHAR类型,保存用户密码
可以使用以下SQL语句创建该表:
sqlCopy CodeCREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
email VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL
)
接下来,我们可以创建一个名为register.php
的PHP文件,用于处理用户提交的注册表单数据并将其插入到数据库中。
phpCopy Code<?php
// 连接到数据库
$conn = new mysqli("localhost", "username", "password", "mydb");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 处理POST请求并插入数据
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST["name"];
$email = $_POST["email"];
$password = password_hash($_POST["password"], PASSWORD_DEFAULT);
$sql = "INSERT INTO users (name, email, password)
VALUES ('$name', '$email', '$password')";
if ($conn->query($sql) === TRUE) {
echo "注册成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 关闭数据库连接
$conn->close();
?>
在上面的代码中,我们首先使用MySQLi扩展连接到数据库。然后,我们检查是否接收到POST请求,并从$_POST
超全局变量中获取提交的数据。接下来,我们使用password_hash()
函数对密码进行哈希处理,并构建INSERT语句将数据插入到users
表中。
最后,需要注意的是,关闭数据库连接非常重要,因为它释放了与数据库的所有资源和连接。
总结
本文介绍了如何使用PHP MySQLi扩展插入数据,并提供了一个实际的例子。在开发Web应用程序时,理解如何操作数据库是非常重要的一环,希望这篇学习笔记可以帮助您更好地掌握PHP MySQL插入数据的技能。