@Felix_Sometimes

Почему при вставке двоичного файла(колонка BLOB) в sqlite вставляется NULL и как это исправить?

В логах файл существует, запрос работает корректно с другими типами
Вот код тезисно

метод класса:
static add_binfile(id, data, cb) {
        const sql = `UPDATE users SET binfile = ? WHERE id = ?`
        db.run(sql, data.binfile, id, cb)
    }
}


таблица
db.serialize(()=> {
    const sql = `
        CREATE TABLE IF NOT EXISTS users
         (id INTEGER PRIMARY KEY, binfile BLOB)
    `
    db.run(sql)
})


код в приложении
Class.add_binfile(
                id,
                binfile,
                (err) => {
                    if(err) return res.send('false')
                    res.format({
                        json: () => {
                            res.send('true')
                        }
                    })
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
https://github.com/TryGhost/node-sqlite3/wiki/API#...
In case you want to keep the callback as the 3rd parameter, you should set param to "[]"

// Directly in the function arguments.
db.run("UPDATE tbl SET name = ? WHERE id = ?", "bar", 2);

// As an array.
db.run("UPDATE tbl SET name = ? WHERE id = ?", [ "bar", 2 ]);

// As an object with named parameters.
db.run("UPDATE tbl SET name = $name WHERE id = $id", {
    $id: 2,
    $name: "bar"
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы