将 JavaScript 中的值直接插入 MySQL 数据库
Posted
技术标签:
【中文标题】将 JavaScript 中的值直接插入 MySQL 数据库【英文标题】:Inserting values from JavaScript directly into MySQL database 【发布时间】:2015-12-06 15:48:57 【问题描述】:我正在使用这个 JS 函数来获取访问者的地理位置并将其显示在页面上。这很好用。
function onGeoSuccess(location)
console.log(location);
var strLocation = '<b>Latitude:</b> ' + location.coords.latitude + '<br />' +
'<b>Longitude:</b> ' + location.coords.longitude + '<br />' +
'<b>City:</b> ' + location.address.city + '<br />' +
'<b>Country:</b> ' + location.address.country + '<br />' +
'<b>Country Code:</b> ' + location.address.countryCode + '<br />' +
'<b>Region:</b> ' + location.address.region + '<br />' +
'<b>Accuracy:</b> ' + location.coords.accuracy + '<br />' +
'<br />'
document.getElementById('geofound').innerhtml = strLocation;
//The callback function executed when the location could not be fetched.
function onGeoError(error)
console.log(error);
window.onload = function ()
//geolocator.locateByIP(onGeoSuccess, onGeoError, 2, 'map-canvas');
var html5Options = enableHighAccuracy: true, timeout: 6000, maximumAge: 0 ;
geolocator.locate(onGeoSuccess, onGeoError, true, html5Options, 'geo-details');
;
现在我想在每次调用时将此信息保存到 mysql 数据库中。比如:
var strLocation = '$addtodb = "mysql_query('INSERT INTO gpsdb (lat, lon, city, country, code, region, accuracy) values (location.coords.latitude, location.coords.longitude, ...))"'
但我认为这不是正确的做法。直接从 JS 将信息输入数据库的正确方法是什么?我不需要像现在在 JS 中那样回显信息,我宁愿从数据库中提取它,一旦它进入那里。 JS 仅用于插入 DB。
【问题讨论】:
【参考方案1】:您需要对服务器端语言使用 ajax 调用 http://api.jquery.com/jquery.ajax/,然后将信息插入数据库
例如
发布到数据库
function insertIntoDatabase(location)
$.ajax(
url: 'serversideurl',
type : "POST",
data: location,
success: function(response)
// after success from server show the location on screen?
document.getElementById('geofound').innerHTML = response.location;
);
然后在服务器内部,您可以解析对象,或者在将其作为数据发送之前由客户端完成。并运行 mysql_query
【讨论】:
哦,好的。所以 URL 将是一个 php,它从 URL 获取数据并将这些数据输入数据库,对吗?如何将 lat、lon 等字符串格式化为“serversideurl”?url: 'www.foo.com/insert.php?lat=' + location.coords.latitude + '?lon=' + location.coords.longitude + 'etc...',
您可以将 url 更改为 www.foo.com/insert.php
并将类型更改为 GET
并将数据更改为:data: longitude: location.coords.longitude, city: location.address.city, countrycode: location.address.countryCode, region: location.address.region, accuracy: location.coords.accuracy
然后在 php 端您可以使用类似 $_GET['city']
以上是关于将 JavaScript 中的值直接插入 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章