mysql存数据报错

为啥这报错啊,感觉没啥问题啊

img


这是前端传的数据

img


这是后端接收

img


这是数据库建的表

img

因为order是mysql的预留字(关键字),所以当使用order作为表名或者字段名时,在sql语句中需要用反引号包裹,sql修改如下:

sql.query("insert into `order` (user, paylist, price, address_id) values (?,?,?,?)", [req.query.user, req.query.paylist,req.query.total,req.query.address], function(err, data) {
  console.log("插入默认地址")
  if (err) console.error(err)
  res.send('1')
})

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/250120
  • 这篇博客也不错, 你可以看下mysql插入数据显示为问号或者乱码问题的解决方法
  • 除此之外, 这篇博客: mysql 基本知识及常用命令汇总中的 建表后的表操作修改 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、修改表名

    alter table tabName rename to newTabName;
    

    2、添加字段

    alter table tabName add stuName varchar(20) not null;
    

    3、修改字段

    alter table tabName change stuName newStuName varchar(50) null;
    

    4、删除字段

    alter table tabName drop stuName;
    

    5、添加主键约束

    alter table tabName add constraint pk_stuId primary key tabName(strId)
    

    6、添加外键约束

    alter table tabName add constraint fk_student_grade foreign key(gradeId) references grade(gradeId)
    

    7、添加唯一约束

    ALTER TABLE tabName ADD UNIQUE (username);
    

    8、添加默认约束

    ALTER TABLE tabName ALTER age SET DEFAULT 15;
    

    删除默认约束

    ALTER TABLE user2 ALTER age DROP DEFAULT;
    

    9、插入数据

    INSERT INTO table_name ( field1, field2,...fieldN )
                           VALUES
                           ( value1, value2,...valueN );
    

    10、查询数据

    语法:

    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [LIMIT N][ OFFSET M]
    
    • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
    • SELECT 命令可以读取一条或者多条记录。
    • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
    • 你可以使用 WHERE 语句来包含任何条件。
    • 你可以使用 LIMIT 属性来设定返回的记录数。
    • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。

    11、where 子句

    语法:

    SELECT field1, field2,...fieldN FROM table_name1, table_name2...
    [WHERE condition1 [AND [OR]] condition2.....
    
    • 查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条件。
    • 你可以在 WHERE 子句中指定任何条件。
    • 你可以使用 AND 或者 OR 指定一个或多个条件。
    • WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
    • WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
    SELECT * from runoob_tbl WHERE BINARY runoob_author='runoob.com';
    

    11、修改数据

    语法:

    UPDATE table_name SET field1=new-value1, field2=new-value2
    [WHERE Clause]
    
    • 你可以同时更新一个或多个字段。
    • 你可以在 WHERE 子句中指定任何条件。
    • 你可以在一个单独表中同时更新数据。
    UPDATE runoob_tbl SET runoob_title='学习 C++' WHERE runoob_id=3;
    

    12、删除数据

    DELETE FROM table_name [WHERE Clause]
    
    • 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
    • 你可以在 WHERE 子句中指定任何条件
    • 您可以在单个表中一次性删除记录。

    13、like 语句

    SELECT field1, field2,...fieldN 
    FROM table_name
    WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
    
    • 你可以在 WHERE 子句中指定任何条件。
    • 你可以在 WHERE 子句中使用LIKE子句。
    • 你可以使用LIKE子句代替等号 =。
    • LIKE 通常与 % 一同使用,类似于一个元字符的搜索。
    • 你可以使用 AND 或者 OR 指定一个或多个条件。
    • 你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句来指定条件。

    实例:

    SELECT * from runoob_tbl WHERE runoob_author LIKE '%COM';
    

    o(╥﹏╥)o 今天有点累了,先不整理了,后边还有分组,连表查询,函数使用,排序,正则等,需要的自行查询吧。