如何将包含多个项目的JSON文件中的数据添加到mysql?目前,下面为每个项目(游戏)创建一个新行,其值在$json
内唯一的问题是,当每行应该不同时,每行都有相同的$tagsT
,因为每个项目都有自己的行独特的标签集。
$json = $_POST['json'];
$result = json_decode($json);
foreach($result as $key => $value) {
if($value) {
foreach ($value->tags as $tag) { $tagsT .= $tag.','; }
mysql_query("INSERT INTO `games_db`.`Games` (`title`, `description`, `image`, `category`, `page`, `rating`, `width`, `height`, `tags`) VALUES ('$value->name', '$value->description', '/images/$pageid.jpg', '$category', '$pageid', '$value->rating', '$value->width', '$value->height', '$tagsT')")
}
答案 0 :(得分:1)
每次循环后清理字符串变量。
foreach ($value->tags as $tag) { $tagsT .= $tag.','; }
mysql_query("INSERT INTO `games_db`.`Games` (`title`, `description`, `image`, `category`, `page`, `rating`, `width`, `height`, `tags`) VALUES ('$value->name', '$value->description', '/images/$pageid.jpg', '$category', '$pageid', '$value->rating', '$value->width', '$value->height', '$tagsT')")
$tagsT = ""; // reset string
否则它显然会保留以前的标签。局部变量的范围在函数内。即使未在foreach
之前定义它,它也将保持有效。
还要考虑阅读当代数据库教程。搜索PDO和准备好的陈述。