{错误:ER_PARSE_ERROR:您的SQL语法有错误;校验 与您的MySQL服务器版本相对应的手册 在第1行的'undefined'附近使用的语法
我尝试在表格列中添加回勾号,但这没有用。
function quantityCheck(ID, itemsPurchased){
connection.query('Select * FROM `products` WHERE `item_id` ' + ID, function(err, res){
if (err){console.log(err)};
if(itemsPurchased <= res[0].stock_quantity){
var total = res[0].price * itemsPurchased;
console.log('Your items are available for final purchase.')
console.log ('Total today for ' + itemsPurchased + ' ' + res[0].product_name + ' is ' + total);
connection.query('UPDATE products SET stock_quantity = stock_quantity -' + itemsPurchased + 'WHERE item_id = ' + ID);
} else {
console.log ('Your purchase could not be processed. We have limited quantities of ' + res[0].product_name);
}
display();
})
我想显示quantityCheck(); connection.query方法之后的代码。
答案 0 :(得分:0)
您在SQL中缺少空格
更改
connection.query('UPDATE products SET stock_quantity = stock_quantity -' + itemsPurchased + 'WHERE item_id = ' + ID);
收件人
connection.query('UPDATE products SET stock_quantity = stock_quantity -' + itemsPurchased + ' WHERE item_id = ' + ID);
注意,我在WHERE之前插入了一个空白
另外,考虑使用准备好的语句来避免SQL注入攻击
答案 1 :(得分:0)
主要是由于您的update
语句中的适当间距。应该像下面这样。同样,您的查询当前容易受到 Sql Injection 攻击。改用参数化查询
connection.query('UPDATE products SET stock_quantity = stock_quantity - ' + itemsPurchased + ' WHERE item_id = ' + ID);