Я пытаюсь использовать параметры в своих вызовах API, чтобы добавить строку с заданными значениями в таблицу в базе данных SQLite. Это работает, когда я просто объединяю переменную в конец запроса, но не когда я объединяю несколько переменных и некоторые дополнительные SQL запросы (например, преобразование переменных в определенный тип данных.
Я заметил, что запросы SQL имеют цветовую кодировку определенным образом c, но составные части окрашены как обычные строки. Вот код:
let id = req.query.id;
let filename = req.query.filename;
let is_folder = req.query.is_folder;
let parent = req.query.parent;
let guid = req.query.guid;
let size = req.query.size;
await initDatabasePromise;
const result = await database.all(`INSERT INTO content VALUES (` + id + `, CONVERT(varchar(512), ` + filename + `), ` + is_folder
+ `, ` + parent + `, CONVERT(varchar(64), ` + guid + `), ` + size + `, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)`);
res.json(result);
А вот изображение, которое показывает цветовую кодировку, в случае, если я неправильно ее понимаю:
Вот часть моего кода, которая показывает цветовые кодированные части
И это ошибка, которую я получаю:
[Error: SQLITE_ERROR: no such column: undefined] {
errno: 1,
code: 'SQLITE_ERROR'
}
[Error: SQLITE_ERROR: near ")": syntax error] {
errno: 1,
code: 'SQLITE_ERROR'
}
А вот строка запроса, сохраненная как переменная и распечатанная. Я понятия не имею, почему она напечатала две из них, или почему все получилось to undefined в первом:
INSERT INTO content VALUES (undefined, CONVERT(varchar(512), undefined), undefined, undefined, CONVERT(varchar(64), undefined), undefined, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
INSERT INTO content VALUES (3, CONVERT(varchar(512), Untitled), true, 1, CONVERT(varchar(64), 012345), 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)
Может быть, я неправильно преобразовываю типы данных? Может быть, остальная часть запроса SQL интерпретируется как одна гигантская строка? У кого-нибудь есть идеи, которые могут мне помочь? о ut?
Редактировать: Если есть другой способ ввода параметров в запрос SQL, пожалуйста, дайте мне знать! Я новичок в SQL, и я буду благодарен за любой совет, который смогу получить. Однако, пожалуйста, не будь грубым или снисходительным, я действительно новичок в этом, и я просто пытаюсь получить некоторую помощь. Спасибо.