如何在插入数据之前检查nodejs中的mysql表字段类型

时间:2018-02-05 11:05:36

标签: mysql node.js

我正在尝试使用nodejs将一些数据插入到mysql表中。这些数据是动态的,因此在插入之前我如何检查字段类型,我在尝试插入日期时遇到问题'到日期字段类型。

         for(var i = 0; i < insertdata.length; i++){
                                var post=[];
                                post  = insertdata[i];

                                var querydd = connection.query('INSERT INTO '+ req.body.table_name + ' SET ?', post, function(err, result) {

                                });

                            }

试图插入的数据如下

      { category: 'sd',
          book_id: '56353',
          author_book: 'Sir Alex Ferguson',
           book_title: 'Leading',
          price: '11',
          publication: 'abc',
          publication_date: '12-10-2015' }
     { category: 'df',
       book_id: '73638',
       author_book: 'Eric Smith',
        book_title: 'How Google Works',
        price: '110',
        publication: 'abcdd',
        publication_date: '17-10-2016' }
       { category: 'ffs',
           book_id: '37364',
          author_book: 'William Shakespeare',
           book_title: 'The Merchant of Venice',
           price: '200',
           publication: 'sgre',
           publication_date: '2017-10-2016' }

1 个答案:

答案 0 :(得分:0)

  1. 12-10-2015string。在插入之前,请尝试将其Date转换为new Date(yyyy-mm-dd)
  2. 通常for (var i = 0; i < insertdata.length; i++)是插入多行的错误代码。你不能控制执行流程,例如如果某些查询失败怎么办?阅读asyncpromises
  3. ('INSERT INTO '+ req.body.table_name + ' SET ?', post是一个危险的代码(请参阅SQL注入)。您必须小心输入数据。更好的方法是使用占位符,如insert into mytable set field = ?, field2 = ?, data, ...
  4. 您可以从metadata tables读取db-field属性。