为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用nodeJs从Mysql中删除行

无法使用nodeJs从Mysql中删除行

翻翻过去那场雪 2023-07-29 14:55:58
我使用 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});        });});
查看完整描述

2 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

您确定您的删除方法吗?在我看来应该是


    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 部分

这将有助于集中精力解决问题。


查看完整回答
反对 回复 2023-07-29
?
慕神8447489

TA贡献1780条经验 获得超1个赞

    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上逐字输入它们,?查询中使用的内容完全被狗变量值替换,并且只有将其作为字符串或整数才有意义。


查看完整回答
反对 回复 2023-07-29
  • 2 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信