使用解码的json数组作为ids列更新MySQL

时间:2017-01-31 22:53:29

标签: php mysql arrays json ajax

  • 我已经使用AJAX将数组传递给我的PHP脚本,并使用json_decode()在PHP中解码数组。
  • 我现在尝试使用foreach循环从数组中获取每个值,然后使用它在我的数据库表中引用正确的id,最后更新" archived&#中的值34;数据库中同一行的列为' 1'。
  • 每次尝试更新数据库时都会收到错误消息。

$ _POST数据如下所示:

(
    [data] => ["1","2","3","4"]
)

,解码后的数组如下所示:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)

其中每个值表示我想在MySQL表中更新的行的ID。

这是我的PHP脚本:

<?php

//Report all PHP errors
error_reporting(-1);

$username="username";
$password="password";
$database="tgpgigs";

//Connect to database
$conn = new mysqli(localhost, $username, $password, $database);

//Check connection
if ($conn->connect_error) {
    die("Failed to connect to MySQL: " . $conn->connect_error);
} else {
echo "Connected to db";
}

//OUTPUT POST DATA
$array = $_POST['data'];

//CHECK DATA
$deData = json_decode($array);
print_r($deData);

//UPDATE MySQL
foreach($deData as $key => $value) {
    echo $value;
    $upSQL = "UPDATE gigdata SET archived='1' WHERE id='".$value."'";
}

目前,foreach循环正确地回显每个$值,但是在数据库中更新它们没有乐趣。感谢您提前提供任何帮助。

1 个答案:

答案 0 :(得分:0)

改变你的foreach周期:

foreach($deData as $key => $value) {
    echo $value;
    $upSQL = "UPDATE gigdata SET archived='1' WHERE id='".$value."'";
    $conn->query($upSQL);
}

我希望这对你有所帮助。