Почему мои данные не попадают в мою базу данных? - PullRequest
0 голосов
/ 02 декабря 2018

Хорошо, я новичок во всем этом, поэтому мне очень жаль, если вы не заметили «очевидную» проблему.Я пытаюсь опубликовать данные, используя POSTMAN, но продолжаю получать эту ошибку.Кто-нибудь знает в чем проблема?

{

    "error": {
        "code": "ER_PARSE_ERROR",
        "errno": 1064,
        "sqlMessage": "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'itemData.GPU\", \"itemData.storage\", \"itemData.size\", \"itemData.price\")' at line 1",
        "sqlState": "42000",
        "index": 0,
        "sql": "INSERT INTO orderdetails (userID, title, device, type, CPU, RAM, GPU, storage, size, price) VALUES (\"itemdata.userID\", \"itemData.title\", \"itemData.device\", \"itemData.type\", \"itemData.CPU\", \"itemData.RAM, \"itemData.GPU\", \"itemData.storage\", \"itemData.size\", \"itemData.price\");"
    }
}

Данные, которые я пытаюсь опубликовать:

{
    "userID":1,
    "title":"Nitro 5 Spin Laptop | NP515-51 | Black",
    "device":"laptop",
    "type":"Convertible",
    "CPU":"i5-8250U",
    "RAM":"8 GB",
    "GPU":"GTX 1050",
    "storage":"SSD",
    "size":"256 GB",
    "price":1099
}

.

 module.exports.add = function(conData, itemData, callback){
        db.connect(conData, function(err, conn){

            if (err) {
                callback(err);
                return;
            }

            conn.query("INSERT INTO orderdetails (userID, title, device, type, CPU, RAM, GPU, storage, size, price) VALUES (\"itemdata.userID\", \"itemData.title\", \"itemData.device\", \"itemData.type\", \"itemData.CPU\", \"itemData.RAM, \"itemData.GPU\", \"itemData.storage\", \"itemData.size\", \"itemData.price\");", itemData, function(err,result){

                callback(err, result);
            });
        });

1 Ответ

0 голосов
/ 02 декабря 2018

Нельзя ссылаться на itemData как часть строки в операторе MySQL в conn.query().Вам нужно будет объединить выполнение VALUES (" + itemData.userID + ", для всех значений itemData в этой строке.Я также рекомендую изучить параметризацию, чтобы защитить ваше приложение от внедрения SQL.Вот простой пример: Как передать параметры в обратный вызов MySQL в nodejs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...