无法使用nodeJs从Mysql中删除行

我使用 nodeJS 和 MySql 创建了一个宠物店 Web 应用程序。我能够成功在数据中插入宠物信息,但无法使用 pet_id 删除宠物。我收到以下错误

[代码:'ER_TRUNCATED_WRONG_VALUE',errno:1292,sqlMessage:“截断了不正确的双值:'pa04'”,sqlState:'22007',索引:0,sql:“从宠物中删除,其中pet_id = ='pa04'”] pet_id

但是当我将 pet_id 指定为整数时,即;5 没有任何反应,甚至没有出现错误。我尝试将 Ajax 代码放入我的 ejs 中,但失败了。请帮我。提前致谢 :)

const { count } = require('console');

var express = require('express');

var mysql=require('mysql');

const { createConnection } = require('net');

var app = express();

var bodyparser=require('body-parser');


app.set("view engine","ejs");

app.use(bodyparser.urlencoded({extended:true}));

app.use(express.static(__dirname +"/public"))


var connection=mysql.createConnection({

    host:'localhost',

    user:'root',

    database:'mini_project',

    password:'password'

});



app.get("/animals", function(req, res){

    var q="select animals.pet_id,pet_category,breed,weight,age,height,fur,cost from animals join pets on animals.pet_id= pets.pet_id";

    connection.query(q,function(err,results){

        if(err) throw err;

        res.render("dogs_home",{data:results});

    

    });

});




app.get("/birds", function(req, res){

    var q="select birds.pet_id,type,noise,cost from birds join pets on birds.pet_id= pets.pet_id";

        connection.query(q,function(err,results){

        if(err) throw err;

        res.render("birds_home",{data:results});

    });

});



app.get("/",function(req,res){

        res.render("home");


});



app.get("/accessories", function(req, res){

    var q="select * from pet_products";

    connection.query(q,function(err,results){

        if(err) throw err;

        res.render("accessories",{data:results});

    

    });

});



app.get("/sales", function(req, res){

    var q="select * from sales_details";

    connection.query(q,function(err,results){

        if(err) throw err;

        res.render("sales",{data:results});

    

    });

});

翻翻过去那场雪
浏览 125回答 2
2回答

慕丝7291255

您确定您的删除方法吗?在我看来应该是    let query = "DELETE FROM pets WHERE pet_id=?";    let values= [req.body.pet_id];    connection.query(query, values, function(err,results){        if(err) {            throw err;        }        res.redirect("/animals");    });如果这不是解决方案,你可以吗console.log生成的失败的sql查询显示 sql 结果show create table pets删除所有不必要的 html 部分这将有助于集中精力解决问题。

慕神8447489

    app.post('/delete',(req, res) => {    let q = "DELETE FROM pets WHERE pet_id=?";    let dog = [req.body.pet_id];    connection.query(q,dog,function(err,results){        if(err) throw err;        res.redirect("/animals");});你不需要提及dog,因为json理解和调试sql查询的一个好方法是在本地mysql上逐字输入它们,?查询中使用的内容完全被狗变量值替换,并且只有将其作为字符串或整数才有意义。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript