Существует проблема с вашим SQL, обратите внимание, что вы написали: Name = name
.Теперь, поскольку SQL нечувствителен к регистру, он в основном эквивалентен name = name
, поэтому вы сравниваете значение имени с его собственным значением, которое всегда будет TRUE
.После этого вы берете первое значение из результатов: const movie = j_res[0];
, поэтому вы всегда получаете первый ряд.
Простое решение (не рекомендуется) состоит в том, чтобы изменить это:
const sql = "select * from Movies where Name=name";
К этому:
const sql = "SELECT * FROM movies WHERE name="+name;
Это должно работать, но объединять значения напрямую - имеет SQL-инъекция уязвимость, которая представляет большой риск.
Итак, я рекомендую вам использовать подготовленный оператор с параметризованными значениями.
Как это:
const name = req.params.name;
const sql = "SELECT * FROM movies WHERE name = ?";
const paramValues = [name];
db.query(sql, paramValues, (err, result) => {
//Your code...
});