使用PHP将数组插入MySQL数据库?

杰西卡(Jessica)

这是我当前的代码:

// connect to database  
$con = mysqli_connect("localhost","username","password","database");
if (!$con) {
    die('Could not connect: ' . mysqli_error());
}

// get the json file
$jsondata = file_get_contents('http://www.example.com');

// convert json to php array
$data = json_decode($jsondata, true);

// assign each of the variables
$id = $data['0']['id'];
$name = $data['0']['name'];
$status = $data['0']['status'];

$insertstatement = mysqli_query($con,"INSERT INTO `table` (`id`, `name`, `status`) VALUES ('".$id."', '".$name."', '".$status."');");

从技术上讲,此代码有效,但仅添加了第一项。

例如,这是要导入的原始json:

[
   {
      "id":"19839",
      "status":"active",
      "name":"First Name",
   },
   {
      "id":"19840",
      "status":"active",
      "name":"Second Name",
   },
   {
      "id":"19841",
      "status":"active",
      "name":"Another Name",
   },
   {
      "id":"19842",
      "status":"active",
      "name":"Last Name",
   }
]

我的代码只会将此插入数据库:

{
 "id":"19839",
 "status":"active",
 "name":"First Name",
}

如何使它们循环遍历所有行并插入所有行?还有一种方法可以按相反的顺序插入它们(从最后一个开始,到第一个结束)?

任何帮助将不胜感激 :)

你的常识
  • 要遍历数组,您必须使用foreach运算符。
  • 要执行多次插入,您必须使用准备好的语句

因此,尽管在所有其他草率的书面答复中都说了什么,但代码仍应是

$stmt = $con->prepare("INSERT INTO `table` (`id`, `name`, `status`) VALUES (?,?,?)");
$stmt->bind_param("sss", $id, $name, $status);
foreach ($data as $row)
{
    $id = $row['id'];
    $name = $row['name'];
    $status = $row['status'];
    $stmt->execute();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章