@hollanditkzn

Как сделать запрос в бд?

Использую данный модуль mysql
Но когда я делаю запрос
answear: function(id){
        return new Promise((resolve, reject) => {
            db.query(
                'SELECT * FROM answers WHERE id_question IN ( ? )',
                [id],
                (err, rows) => {
                    if(err) reject(err);
                    console.log(rows);
                    resolve(rows);
                });
        }).then(rows => {return rows;});

В id помещается id допустим 1,2,3,5 но не суть,. Но выходит что я только получаю значение от id 1, а нужно получить все значение из id 2,3,5
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
Negezor
@Negezor
Senior Shaurma Developer
Как насчёт удобной ORM? Просто в вашем варианте нужно делать биндинги для всего что в IN().

UPD: Но если очень хочется то можно сделать так, передавайте массивом список ID:

{
	answear(ids) {
		return new Promise((resolve, reject) => {
			const bindings = ids.map(id => '?').join(',');

			db.query(
				`SELECT * FROM answers WHERE id_question IN (${bindings})`,
				ids,
				(error, rows) => {
					if (error) {
						return reject(error);
					}

					resolve(rows);
				}
			);
		});
	}
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Vadim1899
Изучите RedBeanPhp и не заморачивайтесь на этом
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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