PHP通过循环将数组数据插入数据库 (php循环数组插入数据库)
在日常的网站开发中,常常需要将一组数据插入到数据库中。如果数据量比较小,手动逐个插入还算简单。但若数据量大,这种方式会显得十分繁琐。因此,使用循环批量插入数据是更加高效的方法。在这篇文章里,我们将学习使用PHP循环将数组数据插入数据库的方法。
准备工作
在开始操作之前,我们需要先准备好自己的开发环境。主要包括以下两方面:
1. 安装PHP
需要安装PHP,以便于编写和运行PHP程序。如果您还没有安装PHP,您可以在官网上下载最新的PHP安装包。
2. 创建数据库和数据表
需要在MySQL中创建一个数据表,用于存储即将插入的数据。例如,我们可以通过以下SQL语句,在MySQL中创建一个名为“users”的表:
“`
CREATE TABLE users (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(30) NOT NULL,
eml VARCHAR(50) NOT NULL,
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
“`
该表共包含4个字段,分别是:
– id:用作唯一标识,自动递增;
– name:用户名;
– eml:用户邮箱;
– reg_date:注册时间。
编写PHP代码
完成以上两个准备工作后,我们就可以开始编写PHP代码了。我们需要先将数据转换为数组形式。
下面是一个简单的例子:
“`
$data = array(
array(‘John’, ‘john@example.com’),
array(‘Jane’, ‘jane@example.com’),
array(‘Doe’, ‘doe@example.com’)
);
“`
在上述代码中,$data 是一个包含3个数组的二维数组。每个子数组包括2个值,分别表示用户名和用户邮箱。
接着,我们使用循环遍历数组中的每个子数组,并将其插入到数据库中。
下面是实现的示例代码:
“`
// 连接数据库
$servername = “localhost”;
$username = “username”;
$password = “password”;
$dbname = “myDB”;
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接是否成功
if (!$conn) {
die(“Connection fled: ” . mysqli_connect_error());
}
// 转义数组中的每个值
foreach ($data as $row) {
$name = mysqli_real_escape_string($conn, $row[0]);
$eml = mysqli_real_escape_string($conn, $row[1]);
// 插入数据
$sql = “INSERT INTO users (name, eml)
VALUES (‘$name’, ‘$eml’)”;
if (mysqli_query($conn, $sql)) {
echo “New record created successfully”;
} else {
echo “Error: ” . $sql . “
” . mysqli_error($conn);
}
}
// 关闭连接
mysqli_close($conn);
“`
我们使用 mysqli_connect() 函数连接到数据库。如果连接失败,则输出错误信息并终止程序。
接着,使用 foreach 循环遍历数组中的每个子数组。对于每个子数组,我们使用 mysqli_real_escape_string() 函数对其进行转义,以避免 SQL 注入攻击。然后,我们将转义后的值插入到数据库中。
使用 mysqli_close() 函数关闭数据库连接。
通过上述示例代码,我们可以看到使用PHP循环将数组数据插入数据库的基本方法。
在实际开发过程中,我们还可以根据具体需求进行相应修改。例如,可以将从表单提交的数据转换为数组后,再进行批量插入;或者在插入数据时,通过判断数据是否已存在进行去重等。
同样的方法,也可以用在更新和删除数据的操作中。掌握批量插入、更新和删除等操作,可以提高我们的编程效率,快速完成开发任务。