Javascript 在node.js mysql中执行更新查询不工作
我不熟悉node.js(以及与之结合的mysql),并尝试根据请求参数和请求正文更新我的数据库。我的文件开头如下所示:Javascript 在node.js mysql中执行更新查询不工作,javascript,mysql,node.js,express,Javascript,Mysql,Node.js,Express,我不熟悉node.js(以及与之结合的mysql),并尝试根据请求参数和请求正文更新我的数据库。我的文件开头如下所示: var express = require('express'); var bodyParser = require('body-parser'); var mysql = require('mysql'); var connection = mysql.createConnection({ host: 'localhost', user: 'root',
var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'm3ttulat0r',
debug: true
});
var app = express();
app.use(bodyParser.json());
http://localhost:8080/mettmeister/1
{
"mettmeister": "Jonas"
}
res.status(201).end();
我的请求如下所示:
var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'm3ttulat0r',
debug: true
});
var app = express();
app.use(bodyParser.json());
http://localhost:8080/mettmeister/1
{
"mettmeister": "Jonas"
}
res.status(201).end();
请求主体如下所示:
var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'm3ttulat0r',
debug: true
});
var app = express();
app.use(bodyParser.json());
http://localhost:8080/mettmeister/1
{
"mettmeister": "Jonas"
}
res.status(201).end();
已成功连接到数据库。然后我有以下代码:
app.post('/mettmeister/:mettwochId', function(req, res) {
var mettmeister = req.body.mettmeister;
var mettwochId = req.params.mettwochId;
var query = 'UPDATE mettwoch SET mettmeister = "'+ mettmeister +'" WHERE mettwoch_id = "'+ mettwochId +'"';
console.log(mettmeister, mettwochId);
connection.query(query, function(err, result) {
if (!err) {
res.status(201);
} else {
res.status(500);
}
});
});
console.log(mettmeister,mettwochId)代码>返回正常的Jonas 1
问题是它发送请求,服务器根据日志获取消息,但什么也没有发生。服务器在执行查询时“停止”
我已打开调试,查询看起来很好
--> ComQueryPacket
{ command: 3,
sql: 'UPDATE mettwoch SET mettmeister = "Jonas" WHERE mettwoch_id = "1"' }
如果我在数据库中手动执行查询,它就会工作。。我真的很高兴能得到任何帮助。谢谢!:) 像这样使用更新查询
connection.query('UPDATE mettwoch SET ? WHERE ?', [{ mettmeister: mettmeister }, { mettwoch_id: mettwochId }])
嗯,我很笨。对不起,伙计们:(
我做了以下几件事
res.status(201);
实际上,您必须像这样完成请求:
var express = require('express');
var bodyParser = require('body-parser');
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: 'm3ttulat0r',
debug: true
});
var app = express();
app.use(bodyParser.json());
http://localhost:8080/mettmeister/1
{
"mettmeister": "Jonas"
}
res.status(201).end();
当服务器没有响应时,数据库中的值是否得到更新?mettwoch\u id
是否为INT?如果是,请尝试删除引号:mettwoch\u id=1
您应该在sql中使用转义变量,因为您的代码可能容易受到sql注入的攻击。@Mr.Web它是,但手动执行它很好。@jonicous,我明白了……我的代码现在看起来很好像这样:connection.query('updatemettwochset?WHERE?',[{mettmeister:mettmeister},{mettwoch_id:mettwochId}],函数(err){console.log(err);if(!err){res.status(201);}else{res status(500);})
没错,但您一直在说数据库也没有更新。@thefourtheye忽略了显而易见的事情..:/I非常抱歉:(如果我没有弄错,请用简短的方式--发送状态
)。