所以我遇到了一个问题,我使用php向mysql数据库插入和更新数据。我从我的应用程序向这个web服务发送一个json数组,然后我需要将这个数据插入一个表并在另一个表上更新它,更新部分工作得很好,但插入部分的工作方式与插入部分的工作方式完全相同,有时只插入数组中的一个对象,有时不添加任何对象。
你们能帮帮我吗?谢谢!!!代码如下:
<?php
include "conexaoPDO.php";
$reserva_dados = $_POST['reserva_dados'];
$array = json_decode($reserva_dados, true);
foreach ($array as $row)
{
$sql = "INSERT INTO reservas (id_reserva, id_sala, data_inicial, horario_inicial, data_final, horario_final, nome_processo, nome_consultor) VALUES ('".$row["id_reserva"]."', '".$row["id_sala"]."', '".$row["dia"]."', '".$row["horario"]."', '".$row["dia"]."', '".$row["horario"]."', '".$row["nome_processo"]."', '".$row["nome_consultor"]."')";
$stmt = $PDO->query($sql);
}
foreach ($array as $row)
{
$sql2 = "UPDATE calendario set status= '".$row["status"]."', id_reserva= '".$row["id_reserva"]."', nome_processo= '".$row["nome_processo"]."', nome_consultor= '".$row["nome_consultor"]."' WHERE id_sala= '".$row["id_sala"]."' AND dia= '".$row["dia"]."' AND horario= '".$row["horario"]."'";
$stmt = $PDO->query($sql2);
}
当做,
1条答案
按热度按时间pcww981p1#
您应该使用这样的准备好的语句来避免sqlinjection。我会尝试重新命名你的变量,以便更具洞察力。您需要检查
$array
为什么插入失败(是否有错误?)您可以使用try catch
捕捉任何插入错误。注意,每个foreach结果执行一个查询,这意味着最终,数据越多,插入的速度就越慢。尝试将所有必要的记录构建到一个查询中(每个查询一个foreach来编写
$data
包含值的数组)。