我想将
array()
key
value
成对数据插入表中
<?php
$foreignKey = 2;
$array = array(
'availability' => array(
array('day' => 'monday','time' => 'am'),
array('day' => 'wednesday','time' => 'pm'),
),
);
我的空闲表 - 一开始
表:可用性
| id | foreign_id | day | time |
+-----+--------------+--------+--------+
结果表:
| id | foreign_id | day | time |
+-----+--------------+----------+--------+
| 1 | 2 | monday | am |
+-----+--------------+----------+--------+
| 2 | 2 |wednesday | pm |
+-----+--------------+----------+--------+
$sql = "INSERT INTO availability ";
您可以循环遍历数组并绑定并执行
$stmt->prepare("INSERT INTO availability (fld1, fld2) VALUES(?, ?)");
foreach($array as $row)
{
$stmt->bind_param($row['fld1'], $row['fld2']);
$stmt->execute();
}
以下是如何使用 PHP 和准备好的语句将多行插入到可用性表中:
<?php
$foreignKey = 2;
$array = array(
'availability' => array(
array('day' => 'monday', 'time' => 'am'),
array('day' => 'wednesday', 'time' => 'pm'),
),
);
// Database connection parameters
$servername = "your_servername";
$username = "your_username";
$password = "your_password";
$dbname = "your_dbname";
try {
// Connect to database
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// Set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Prepare SQL statement
$sql = "INSERT INTO availability (foreign_id, day, time) VALUES ";
$values = array();
foreach ($array['availability'] as $item) {
$values[] = "(:foreign_id, :day, :time)";
}
$sql .= implode(", ", $values);
$stmt = $conn->prepare($sql);
// Bind parameters and execute the statement for each row
foreach ($array['availability'] as $item) {
$stmt->bindParam(':foreign_id', $foreignKey);
$stmt->bindParam(':day', $item['day']);
$stmt->bindParam(':time', $item['time']);
$stmt->execute();
}
echo "Records inserted successfully";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}
// Close connection
$conn = null;
?>
说明: 数据库连接:
将“your_servername”、“your_username”、“your_password”和“your_dbname”替换为您的实际数据库连接详细信息。 准备好的语句和 SQL 构造:
构建 SQL 查询的初始部分:INSERT INTO Availability (foreign_id, day, time) VALUES。 准备一个数组 $values 来存储要插入的每一行的占位符。 循环遍历数组数据:
遍历 $array['availability'] 中的每个元素。 对于每个元素,将 (:foreign_id, :day, :time) 添加到 $values 数组中。 准备并执行 SQL 语句:
使用$sql准备SQL语句。 使用 $conn->prepare($sql) 准备语句。 对于 $array['availability'] 中的每一行: 将参数(:foreign_id、:day、:time)与实际值绑定。 执行语句。 异常处理:
使用try-catch块来捕获数据库操作期间可能发生的任何异常。 如果抛出异常,它将被捕获并显示错误消息。 输出:
如果记录插入成功,会回显“记录插入成功”。 笔记: 此代码假设您使用 PDO 进行数据库操作,由于其安全性和易用性,这是 PHP 中数据库交互的良好实践。 确保将数据库连接参数($servername、$username、$password、$dbname)替换为您的实际数据库凭据。 foreach 循环用于将 $array['availability'] 数组中的每一行插入到数据库表中。