这是我目前的代码:
// 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."');");
Run Code Online (Sandbox Code Playgroud)
从技术上讲,这段代码正在运行,但它只是添加了第一项.
例如,这是导入的原始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",
}
]
Run Code Online (Sandbox Code Playgroud)
我的代码只会将其插入数据库:
{
"id":"19839",
"status":"active",
"name":"First Name",
}
Run Code Online (Sandbox Code Playgroud)
如何让它循环遍历所有行并插入所有行?还有,一种方法以相反的顺序插入它们(从最后一个开始,到第一个结束)?
任何帮助将不胜感激 :)
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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6444 次 |
| 最近记录: |