Ajax 호출 및 PHP 스크립트를 사용하여 지리 데이터 (위도 & 경도)를 mySQL 데이터베이스로 보내려고합니다. Ajax와 PHP 스크립트 모두 괜찮아 보이지만 아무것도 데이터베이스로 이동하지 않습니다. 나는 MySQL을 관리하기 위해 다른 구문과 옵션 (예 : 어레이가있는 PDO와 같은)을 시도했지만 아무 것도 ... 당신은 무엇이 잘못 됐는지를 알고 있습니까?Ajax 및 PHP로 MySQL에 데이터 전송
도와 주셔서 대단히 감사합니다. Flo.
내 HTML 페이지의 jQuery 코드는 간단하다 :
는 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.');
}
});
});
}
}
나는 (삽입 -에 - bdd.php) 시도 첫 번째 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 스크립트 I , 같은 이름 (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());
}
?>
기본 디버깅 : PHP의'var_dump ($ _ POST)'에서 무엇을 볼 수 있습니까? –
mysql_query()는': latitude'와 같은 입력 매개 변수를 허용하지 않습니다. –
어, 왜 헤더 요? 또한 첫 번째 코드는 작동하지 않으며 두 번째는 정상적으로 나타납니다. –