将 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 数据库的主要内容,如果未能解决你的问题,请参考以下文章

PDF JavaScript:将变量的值插入表单字段

排序之直接插入排序

排序之直接插入排序

mysq对存在null值的字段排序

使用循环将 javascript 数组值注入多个 HTML 位置

直接插入排序