【发布时间】:2016-06-16 20:13:26
【问题描述】:
我想从大型 json 文件中读取并用 php 将其存储在数据库中。
我为解析和插入文件编写了这段代码,但最后一个查询不起作用。
public function insert_from_json() {
$json = '
[
{
"name": "The Adventurer",
"year": 1917,
"country": "USA",
"durationMinutes": 24,
"director": "Charles Chaplin"
},
{
"name": "Mest kinematograficheskogo operatora",
"year": 1912,
"country": "Russia",
"durationMinutes": 12,
"director": "Wladyslaw Starewicz"
}
]';
$result = json_decode($json);
$vals = '';
foreach ($result as $key => $value) {
if ($value) {
$vals.="('$value->name','$value->year','$value->country','$value->durationMinutes','$value->director'),";
}
}
$vals = trim($vals, ',');
$stmt = $this->conn->prepare("INSERT INTO film (name,year,country,durationMinutes,director) VALUES ($vals)");
$stmt->execute();
echo 'successfully';
}
请帮我做。
【问题讨论】:
-
我觉得这必须在某个地方覆盖。
-
你得到什么错误?是否生成有效的 SQL?
-
最后的括号是多余的。删除这些,我怀疑它会起作用 - 但这看起来不太安全!
-
"('{$value->name}',等... -
这样构建查询违背了使用准备好的语句的目的。