У меня есть массив, содержащий объекты, и я хочу сохранить эти объекты в моей базе данных MySQL. Вначале он работал довольно хорошо, но внезапно он прекратил работу, даже если он не вносил никаких изменений в код или БД.Успех JS/PHP/MySQL, но не вставлен
Массив объекта выглядит следующим образом: var geocoded = [{zip: 1234, place: "XY", country: "XY", lat: "123.123", lng: "123.123"}, ...];
Я использую следующий код JS для итерации по массиву и после каждого объекта к БД. кайтер является итератором я использую и определяются как geocoded.length - 1
function postPlaces(data, kiter) {
if (kiter >= 0) {
$.post("api/placessave.php",
data[kiter],
function(data, status){
kiter--;
postPlaces(geocoded, kiter);
console.log(data + '.............' + status);
}
);
} else {
//statusUpdate(id);
}
}
placessave.php выглядит следующим образом:
<?php
define('HOST','localhost');
define('USERNAME', 'root');
define('PASSWORD','*****');
define('DB','****');
$con = mysqli_connect(HOST,USERNAME,PASSWORD,DB);
$zip = $_POST['zip'];
$place = $_POST['place'];
$country = $_POST['country'];
$lat = $_POST['lat'];
$lng = $_POST['lng'];
$sql = "insert ignore into places (zip, place, country, lat, lng) values ($zip, '$place', '$country', '$lat', '$lng')";
if(mysqli_query($con, $sql)){
echo "success";
}
mysqli_close($con);
?>
Я использую ВСТАВИТЬ ИГНОРИРУЙТЕ потому дубликаты могут существовать, но обновление не требуется. Интересная часть состоит в том, что все работает довольно хорошо. Я также получаю Успех по каждому запросу, но ничего не сохраняется в БД.
какая часть вашего кода терпит неудачу - sql или ajax/javascript? – RamRaider
Вы открыты для SQL-инъекций и, во многих странах, zip/postcode ** не ** numeric, поэтому 'values ($ zip, '$ place',' вызовет проблему (без кавычек вокруг '$ zip') – CD001
Вы протестировали его без ключевого слова 'IGNORE', просто проверьте его, если вы действительно добиваетесь успеха? Msd – devpro