ВСТАВИТЬ В инструкцию, не работающую в NodeJS с использованием MySQL

#javascript #mysql #sql #node.js

#javascript #mysql #sql #node.js

Вопрос:

Я бился головой о стену, пытаясь выяснить проблему с синтаксисом MySQL, который у меня есть. Я получаю сообщение об ошибке:

{«сообщение»: «У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом ‘?, ?, ?,?,?,?,( ВЫБЕРИТЕ account_id ИЗ учетных записей, ГДЕ account_name = ?),?,?,?, UUI’ в строке 1»}

Вот код на серверной части, который я настроил:

 const Customer = function(customer) {
  this.customer_id = customer.customer_id;
  this.contact_title = customer.contact_title;
  this.contact_first = customer.contact_first;
  this.contact_last = customer.contact_last;
  this.referral_source = customer.referral_source;
  this.initial_contact_date = customer.initial_contact_date;
  this.job_title = customer.job_title;
  this.account = customer.account;
  this.phone = customer.phone;
  this.email = customer.email;
  this.comments = customer.comments;
  this.created_by = customer.created_by;
  this.status = customer.status;
}

Customer.create = (newCustomer, result) => {
  console.log(newCustomer);
  const sql = 'INSERT INTO customers VALUES(UUID_TO_BIN(?, 1),?,?,?,?,?,?,(SELECT account_id FROM accounts WHERE account_name = ?),?,?,?,UUID_TO_BIN(?, 1),?);';
  db.query(sql, newCustomer, (err, res) => {
    if (err) {
      result(err, null);
      return;
    }

    result(null, { id: res.insertId, ...newCustomer });
  });
};
  

Я ни за что на свете не могу понять, где ошибка, поскольку она работает на рабочем столе. Любая помощь была бы очень признательна, спасибо!

Комментарии:

1. Вы забыли подготовить инструкцию и добавить значения параметров.

2. Вам не нужно готовить инструкцию, если вы вставляете во все столбцы правильно? И значения поступают от newCustomer. Значения db.query — sql = statement, newCustomer = values

Ответ №1:

На самом деле я сам нашел ответ. Я пытался использовать объект, думая, что значения будут помещены в инструкцию. Просто нужно было создать новую переменную с Object.values и поместить ее в функцию базы данных.