这里我试图将JSON解析数据插入MYSQL数据库。我在MYSQL中用3列创建了表 - 链接,url,description.My MYSQL中的表名是信息..我的代码不起作用。我无法找到错误..任何人都可以帮助我!!这是我的代码
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数据并在表中插入数据。先感谢您。
答案 0 :(得分:1)
看起来这不是有效的SQL。
应该像
INSERT INTO information (`link`, `url`, `description`) VALUES(?,?,?)
编辑:看起来htmlContent永远不会改变,所以你可能想根据你的需要进行调整。
EDIT2:您的数据类型设置为jsonp。这应该是基于您的DuckDuckGo API调用的JSON。 JsonP是JSON,通常用javascript填充并通过脚本标记加载。这需要在服务器上进行特殊准备。 DuckDuckGo正在为您返回通用JSON。