Я хочу отправить географические данные (широта & долготы) в базу данных mySQL с помощью вызова Ajax и скрипта PHP. Оба сценария Ajax и PHP выглядят нормально для меня, но ничего не происходит в базе данных. Я пробовал различный синтаксис и параметр (например, PDO с массивом) для управления MySQL, но все равно ничего ... У вас есть представление о том, что происходит не так?Отправка данных в MySQL с помощью Ajax и PHP
Большое спасибо за вашу помощь, Flo.
Jquery код моей страницы Html прост:
function getCoordPosition(){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
$.ajaxSetup({
url: "insert-in-bdd.php",
type: "POST",
});
$.ajax({
data: 'latitude='+latitude+'&longitude='+longitude,
success: function (msg) {
alert (msg);},
error: function (XMLHttpRequest, textStatus, errorThrown)
{
alert('Error submitting request.');
}
});
});
}
}
Первый PHP скрипт Стараюсь (вставка-в-bdd.php) является:
<?php
header('Content-type: text/html; charset=ISO-8859-1');
try
{
if(isset($_POST['latitude']) && isset($_POST['longitude'])){
$latitude = ($_POST['latitude']);
$longitude = ($_POST['longitude']);
$db = mysql_connect(localhost, root, "");
$select = mysql_select_db(madb, $db);
mysql_query('INSERT INTO location (lat,lng)
VALUES (:longitude, :longitude)');
}}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
}
?>
Второй PHP скрипт я попробовать (с PDO и массива), то же имя: вставка-в-bdd.php является:
<?php
header('Content-type: text/html; charset=ISO-8859-1');
try
{
if(isset($_POST['latitude']) && isset($_POST['longitude'])){
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=localhost;dbname=madb', 'root', '');
$req = $bdd->prepare('INSERT INTO location(lat, lng) VALUES(:lat, :lng)');
//$req = $bdd->prepare('UPDATE location SET lat = :lat');
$req->execute(array(
'lat' => $_POST['latitude'],
'lng' => $_POST['longitude']
));
}}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
Базовая отладка: что вы видите в 'var_dump ($ _ POST)' в PHP? –
'mysql_query()' не принимает входные параметры, такие как ': latitude'. –
Умм, почему заголовок? Также первый код не будет работать, второй выглядит нормально –