首页 > 解决方案 > 在 SQL 数据库中保存值的函数

问题描述

我想更好地理解下面的 JavaScript 函数。如果你能帮助我,那就太好了。

function createevent(id, number, callback) {
    let sql = `INSERT INTO event (id, number, status) VALUES (?,?, 'outstanding')`
    let params = [id, number]

    db.run(sql, params, (err) => {
        if (err) {
            console.error(err.message)
            callback(true)
        } else callback(false)
    })
}

标签: javascriptsqlsqlite

解决方案


而是在这种情况下let更好地使用const,让我们使用可以在当前范围内重新分配的变量

db.run 准备 sql,发送到 db,等待响应将响应传递给您的回调

准备 sql,sql 有 - ?,每个人都同意一个参数,首先?到第一个参数 ... 在准备 sql 期间,?替换为参数

你不会写

  const sql = `INSERT INTO event (id, number, status) VALUES (${id},${number}, 'outstanding')`;

因为在不安全的情况下,您的 id 参数可以包含 sql(可以阅读有关 SQL 注入的信息)

在准备 sql -> 将其发送到数据库并等待结果后,在获取结果后将其传递给您的回调函数

(err) => {
        if (err) {
            console.error(err.message)
            callback(true)
        } else callback(false)
    }

在这种情况下,您验证 sql 是否在数据库中成功执行

您可以在任何有关在 nodejs 中使用一些 SQL 的文档中阅读更多相关信息,因为它https://www.sqlitetutorial.net/sqlite-nodejs/insert/


推荐阅读