如何将JSON解析数据插入MYSQL

时间:2014-11-25 05:28:50

标签: javascript mysql json node.js parsing

这里我试图将JSON解析数据插入MYSQL数据库。我在MYSQL中用3列创建了表 - 链接,url,description.My MYSQL中的表名是信息..我的代码不起作用。我无法找到错误..任何人都可以帮助我!!这是我的代码

dbStore.js

var express=require('express');
var mysql=require('mysql');
var config = require('./config.json');

var dbConnect = mysql.createConnection({
user     :  config.user,
password :  config.password,
database :  config.database
});

dbConnect.connect(function(err){
    if(err){
        console.log(err);
    }else{
        console.log("connection success");
    }
});

function insert() {
    var key = $("#search1").val();
    var htmlContent = "";
    $.ajax({
        type: "GET",
        url: "http://api.duckduckgo.com/?q=" + key + "&format=json&pretty=1",
        dataType: "jsonp",
        success: function (data, status, jqXHR) {
            alert("on success");
            if (data.RelatedTopics.length != "") {
                for (var i = 0; i < data.RelatedTopics.length; i++) {
                    var desc = data.RelatedTopics[i].Text;
                    var url  = data.RelatedTopics[i].Icon.URL;
                    var link = data.RelatedTopics[i].FirstURL;
                    var data={
                        link: link,
                        url: url,
                        description: desc
                    };
                    dbConnect.query('INSERT INTO information SET?',data,function(err,res){});
                    htmlContent += "";
                    $('#div1').html(htmlContent);
                }
            }
        },
        error: "error"
    });
};

表名是信息(columns-link,url,description)。从我的html页面on-click事件我调用了dbStore.js中的insert()函数,它将从api解析json数据并在表中插入数据。先感谢您。

1 个答案:

答案 0 :(得分:1)

看起来这不是有效的SQL。

应该像

INSERT INTO information (`link`, `url`, `description`) VALUES(?,?,?)

编辑:看起来htmlContent永远不会改变,所以你可能想根据你的需要进行调整。

EDIT2:您的数据类型设置为jsonp。这应该是基于您的DuckDuckGo API调用的JSON。 JsonP是JSON,通常用javascript填充并通过脚本标记加载。这需要在服务器上进行特殊准备。 DuckDuckGo正在为您返回通用JSON。