我将json拉入php对象并开始将该对象的数据放入数据库。我在json有20个用户,每个人都成功进入数据库,除了一个姓O' Carolan。我认为错误就在那个单引号中,对此有所了解。我阅读了有关sql注入的所有内容,并尝试了我在stackoverflow上找到的所有内容,类似的错误仍然无法正常工作。我也尝试了PDO并准备好了陈述,但仍然无法正常工作。在这里,我总是收到一个错误:你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在'附近使用。 '男性')'另外,当从json打印出用户时,它会正确地打印出来并且一切都很好,只有第三个用户O' carolan不会进入数据库。 我的json在http://dev.30hills.com/data.json,我的代码是:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$db = "30hills";
// Create connection
$conn = new mysqli($servername, $username, $password, $db);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$json_string = 'http://dev.30hills.com/data.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata, false);
$elementCount = count($obj);
for ($x = 0; $x < $elementCount; $x++) {
$id = $obj[$x]->id;
$firstname = $obj[$x]->firstName;
$surname = $obj[$x]->surname;
//if (preg_match('/'.$special_chars.'/', $surname)){
// $surname = str_replace("'","",$surname);
//}
$age = $obj[$x]->age;
$gender = $obj[$x]->gender;
echo $id;
echo " ";
echo $firstname;
echo " ";
echo $surname;
echo "<br>";
mysqli_query($conn, "INSERT INTO user (`id`, `firstName`, `surname`, `age`, `gender`)
VALUES($id, '$firstname', '" . $surname . "', $age, '$gender')")
or die(mysqli_error($conn));
&GT;
答案 0 :(得分:0)
答案是json中的age = null不会插入到数据库中,必须使那个可空入表