получить ответ на запрос MySQL - PullRequest
0 голосов
/ 31 января 2019

Я кодирую сайт, реализующий API полосы.Я использую NodeJS и MySQL.Мне нужно создать 2 таблицы для сохранения нескольких данных.

У меня есть идентификатор в одной таблице и идентификатор авторизации во 2-й таблице.Я пытаюсь связать две таблицы с этими идентификаторами, чтобы я мог легко связать их вместе.Поэтому я создал переменную, которая сохраняет идентификатор первой таблицы и помещает ее в 2. Но мне не удается сохранить ее.

вот мой код:

        var sqlstripe = "SELECT id FROM authentification WHERE customerID = '" + customer.id +"'";
    console.log("getting ID from auth to put it in stripeID");
    var rowIDinDB = DB.query(sqlstripe, function (err, result) {
        if (err) throw err;
        console.log(result);
    });

    var sqlInsertstrip = "INSERT INTO stripeid (authID, customerID, subscriptionID, amount, date) VALUES ?";
    var valuesstripe = [
        [rowIDinDB, customer.id, subscription.id, subscription.amount, datenow]
    ];
    console.log('sending data to the DB for StripeID table');
    DB.query(sqlInsertstrip, [valuesstripe], function (err, result) {
        if (err) throw err;
        console.log(result);
    });

Я сохраняю запрос в «sqlstripe», но когда я отправляю его в rowIDinDB, я получаю: Ошибка: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Неверное целочисленное значение: «[объект объекта]» для столбца «authID» в строке 1

идентификатор аутентификацииявляется маленькой надписью без знака, удостоверение личности также.

спасибо за вашу помощь, если вы знаете, как исправить

1 Ответ

0 голосов
/ 12 февраля 2019

В комментарии немного сложно добавить код, поэтому оставьте ответ здесь.Поскольку вы не используете Promise, как вы упомянули, вам нужно будет поместить свой код в обратный вызов.

Отказ от ответственности, я не проверял его, так как не уверен, какой пакет вы используете.Но идея в том, что rowIDinDB - это не результат, который вы ищете, а обратный вызов результата.

var sqlstripe =
  "SELECT id FROM authentification WHERE customerID = '" + customer.id + "'";
console.log("getting ID from auth to put it in stripeID");
DB.query(sqlstripe, function(err, result) {
  if (err) throw err;
  console.log(result);

  let rowIDinDB = result.rows; // ????? Attention, depends on your library, to USE the RIGHT properties

  var sqlInsertstrip =
    "INSERT INTO stripeid (authID, customerID, subscriptionID, amount, date) VALUES ?";
  var valuesstripe = [
    [rowIDinDB, customer.id, subscription.id, subscription.amount, datenow]
  ];
  console.log("sending data to the DB for StripeID table");
  DB.query(sqlInsertstrip, [valuesstripe], function(err, result) {
    if (err) throw err;
    console.log(result);
  });
});

...