Hola tengo un problema en nodejs para obtener datos en mysql
Mi pregunta es '¿Cómo puedo agregar var n en "%drawing eye%" para obtener datos en la base de datos?'
function showResult(req, res){ var n = req.query.query mysql_conn.query('SELECT query_text FROM catalogsearch_query WHERE query_text LIKE "%drawing eye%" ORDER BY popularity DESC LIMIT 0 , 10', function(error, rows){ res.render('result.html',{result:n , related: rows.map(row => row.query_text)}) }) }haz algo como esto LIKE "%' + n + '%" ORDER BY
function showResult(req, res) { var n = req.query.query mysql_conn.query('SELECT query_text FROM catalogsearch_query WHERE query_text LIKE "%' + n + '%" ORDER BY popularity DESC LIMIT 0 , 10', function(error, rows) { res.render('result.html', { result: n, related: rows.map(row => row.query_text) }) }) }El módulo mysql admite consultas con marcadores de posición , donde esos marcadores de posición se reemplazan por variables que pasa (con escape adecuado, para evitar inyecciones de SQL):
function showResult(req, res) { var n = req.query.query; mysql_conn.query(` SELECT query_text FROM catalogsearch_query WHERE query_text LIKE ? ORDER BY popularity DESC LIMIT 0, 10`, '%' + n + '%', function(error, rows) { if (err) return res.sendStatus(500); res.render('result.html',{result:n , related: rows.map(row => row.query_text)}) } ) } el ? después de LIKE está el marcador de posición, que será reemplazado por una versión escapada de '%' + n + '%' .