javascript - 无法使用 Node.js 向 mysql 插入数据

标签 javascript mysql node.js express themoviedb-api

我正在尝试插入从 TMDB api 访问的电影数据。我能够访问数据库并能够插入数据。但是 Values( ) 中的变量将作为值插入到表中。

这是我正在使用的代码:

tmdb.search('movie', { query: searchQuery, language: 'en' }, function (err, results) {

    //Informations on first ID
    tmdb.infos('movie', results.results[0].id, { language: 'en' }, function (err, results) {

        console.log("################ RESULTS FROM API ################");

        console.log(results);

        console.log("*********** ENDDD ************");
        console.log("Movie Name: ", results.title);
        var title = results.title;
        console.log("imdb id :", results.imdb_id);
        var movie_id = results.imdb_id;
        console.log("Tagline  :" , results.tagline);
        console.log("Poster :", results.poster_path);
        var pic = results.poster_path;
        console.log("Rating : " , results.vote_average);
        var rating = results.vote_average;
        console.log("Genres  :" , results.genres);
        console.log("Original language  :" , results.original_language);
        console.log("Overview  :" , results.overview);

        var runtime = 100;
        var starring = "myself";
        var director = "myself";
        var genres = "Action";
        var studio = "Fox";
        var year_released = 2016;
        var copies = 10;
        var price = 19;

        var sqlStatement = " SELECT * FROM movies_info where  movie_id='res.id'";

        db.connection.query(sqlStatement, function (err, rows) {

            if (rows.length == 0) {

                var insert = "INSERT INTO movies_info (movie_id,title, runtime, rating,starring,director,genres, studio,year_released,copies,price,poster) VALUES('movie_id','title', runtime, rating,'starring','director','genres', 'studio',year_released,copies,price,'pic')";
                db.connection.query(insert, function (err, rows) {
                    if (err) {
                        console.log("!!!!!!!!!!!!!!Error Inserting data!!!!!!!!!!!!!  " , err);
                        console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                    }
                    else {
                        console.log("************ INSERTED *****************");
                        console.log(rows);
                        console.log("************* END INSERT ****************");
                    }

                });
            }

        });

    });
});

我的插入查询语法有问题。如有任何建议,我们将不胜感激。

最佳答案

使用这个:

var movie = {
    movie_id: movie_id, 
    title: title, 
    runtime: runtime,
    rating: rating,
    starring: starring,
    director: director,
    genres: genres,
    studio: studio,
    year_released: year_released,
    copies: copies,
    price: price,
    poster: pic
}

db.connection.query('INSERT INTO movies_info SET ?', movie, function(err, result) {
    // handle result success or fail here
});

关于javascript - 无法使用 Node.js 向 mysql 插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35283633/

相关文章:

javascript - 运行递归超时时避免堆栈溢出

node.js - 为什么 fs.readdir 返回 `undefined` ?

javascript - getHours() 在晚上 9 点返回 20,然后在夏令时返回 21。如何始终返回相同的数字

mysql - 如何为 phpmyadmin 中的现有表生成创建表脚本?

node.js - npm Start 和 "npm run client"在 Node 中不工作

mysql - 如果值是从另一个表中选择的,则更新表

MYSQL 函数 "Error Code: 1242 subquery returns more than 1 row"但我没有子查询

javascript - Webpack4|Redux|React 问题 - 您可能需要合适的加载器来处理此文件类型

javascript - 以编程方式将评论发布到 Reddit

javascript - 我的 AngularJS 学习需要一些帮助