Как хранить запросы Mysql

Игнорирование - это именно то, что подразумевает название.

Он не «выбрасывает» то, что вам не нужно, он игнорирует количество символов, которые вы указываете при его вызове, вплоть до char, который вы определяете как точку останова.

Он работает как с входными, так и выходными буферами.

По сути, для операторов std::cin, которые вы используете, игнорируют, прежде чем вы выполните вызов getline, потому что, когда пользователь вводит что-то с std::cin, они нажимают enter, а символ '\n' попадает в cin. Затем, если вы используете getline, он получает символ новой строки вместо нужной вам строки. Таким образом, вы делаете std::cin.ignore(1000,'\n'), и это должно очистить буфер до нужной строки. (1000 помещается туда, чтобы пропустить определенное количество символов перед указанной точкой прерывания, в этом случае символ\n символа новой строки.)

2
задан Renier.Chaves 5 March 2019 в 02:30
поделиться

1 ответ

Вопрос заключается в асинхронном запросе БД, о котором нужно позаботиться. Первое, что вы можете сделать, чтобы сделать его легким и читабельным, - это создание обещания запроса.

function dbQueryPromise(query) {
  return new Promise((resolve, reject) => {
    con.query(query, (err, results) => {
      if(err) return reject(err);
      resolve(results);
    })
  })
}

Теперь вы можете использовать это обещание для управления вашим необходимым поведением:

dbQueryPromise("SELECT id FROM products WHERE name LIKE '%" + req.body.keyword + "%'")
  .then(results => {
   const promiseArray = results.map(result => {
     return dbQueryPromise("SELECT products.id AS id, products.name AS name, products.price AS price, SUM(enter.quantity) AS quantity FROM products JOIN enter ON products.id = enter.id_prod WHERE enter.id_prod = "+mysql.escape(result.id)+";")
   })
   Promise.all(promiseArray).then(allResults => { res.render('inventory', { results: allResults})})
})
0
ответ дан binariedMe 5 March 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: