我一直在关注如何将JSON数据插入MySQL表的解决方案(How to insert json array into mysql database)。代码似乎运行正常,但它仍然返回一个空数据集。
我正在测试一个假设,我的JSON文件中有100,000条记录。我创建了一个类似的JSON文件,只有三个记录认为文件的大小可能阻碍了它,但是这也没有用。
我已经检查了我的数据库名称,表名和行名,但是显示的代码是正确的。有什么指针吗?
<?php
$json = file_get_contents('E:\xampp\htdocs\MOCK_DATA.json');
$obj = json_decode($json, true);
$connection = mysqli_connect("localhost", "root", "");
mysqli_select_db($connection, "et_test") or die('Couldnt connect database');
foreach($obj as $item)
{
mysqli_query($connection, "INSERT INTO 'et_test'.'test' (first_name, last_name, colour, country, city)
VALUES ('".$item['first_name']."','".$item['last_name']."','".$item['colour']."','".$item['country']."','".$item['city']."')");
}
mysqli_close($connection);
?>
答案 0 :(得分:1)
根据OP希望结束问题并标记为已解决:
这是一段有问题的代码'et_test'.'test'
使用反引号,因为在表名周围使用引号是错误的标识符:
SQL
mysqli_query($connection, "INSERT INTO `et_test`.`test` ...
使用or die(mysqli_error($connection))
与mysqli_query()
,以获得“真实”错误。
考虑使用prepared statements或PDO with prepared statements。
目前,您的现有代码向SQL injection开放。