我正在尝试分别插入phone number和name,
然后我试着检索插入的记录,这是我的代码.
电话号码包含国家代码: Ex:+911234567890
app.get('/insertAndGetUser',(req,res) => {
console.log('insertAndGetUser method Called => ');
let name = req.query.username;
let phone = `+${req.query.number}`;
con.query(`insert into user(name,phone) values('${name}','${phone}'`,(err,results,fields) => {
if(err) throw err;
con.query(`select * from user where phone=${phone}`,(err,results,fields) => {
if(err) throw err;
console.log('Response');
let userObj = results;
console.log(userObj[0]);
res.send(userObj[0]);
})
})
})但它会抛出以下错误..。
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1",
sqlState: '42000',
index: 0,
sql: "insert into user(name,phone) values('Nagaraj',' 91xxxxxxxxxx'"从上面我们可以看到+符号没有显示.(我不知道实际的错误是什么?.
发布于 2020-12-05 15:41:25
,而不是使用字符串文本,
我应该在sql语句中使用占位符?。
con.query(
insert into user(name,phone) values(?,?),名称,电话,(err,结果,字段) => {doSomething.}
发布于 2020-12-05 15:43:43
平衡你的括号。
删除SQL注入漏洞。因为网络爬行。
而且,在js中,电话号码可能很奇怪,因为它们有时看起来像数字。
而不是
let phone = `+${req.query.number}`试一试
let phone = '+' + req.query.number.toString()看看你能不能得到更好的结果。
发布于 2021-08-14 19:57:32
您需要在mysql连接中允许多个语句。
const db = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "users",
multipleStatements: true })https://stackoverflow.com/questions/65158635
复制相似问题