node-sqlite3 文档

node-sqlite3 文档

参考自: API · mapbox/node-sqlite3 Wiki · GitHub

Main

new sqlite3.Database(filename, [mode], [callback])

返回一个新的数据库对象并自动打开数据库,

  • filename 数据库文件名

sqlite3.verbose()

Database

Database#close([callback])

关闭数据库

Database#configure(option, value)

Database#run(sql, [param, ...], [callback])

执行带特定参数的SQL语句,然后调用回调函数。

返回:数据库对象,允许链式调用。

  • sql sql 语句

  • [param,...] sql 语句的参数
    三种绑定参数的方法:

// 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"
});
  • [callback] 在发生错误时调用的回调函数
    • 如果发生错误,回调的参数为 [error object] 包括 [error message]

    • 如果执行成功,回调的参数为 null,函数内的 this 为 [statement object]

    • 执行成功时, this 对象包含以下两个属性

      • lastID: 最后插入行的 id,仅为 INSERT 执行成功的结果
      • changes: 受查询语句影响的行数,仅为 UPDATE or DELETE 执行成功的结果
      • 注:仅有 .run() 方法中有这两个属性,其他情况不可用

Database#get(sql, [param, ...], [callback])

执行带特定参数的SQL语句,然后调用回调函数返回结果的第一行。
返回:数据库对象,允许链式调用。

参数同 Database#run ,不同之处是

  • callback function(err, row) {}
    • 如果查询结果是空 row 为 undefined
    • 否则 row 为一个对象,其属性名为数据库表的列名

Database#all(sql, [param, ...], [callback])

执行带特定参数的SQL语句,然后调用回调函数返回所有结果。
返回:数据库对象,允许链式调用。

参数同 Database#run ,不同之处是

  • callback function(err, rows) {} , rows 为数组
    • 如果查询结果是空 row 为 []
    • 否则 rows 为对象的数组,其属性名为数据库表的列名

注: all() 方法将会查询全部结果,并保存在内存中,当查询结果可能很多时,建议使用 Database#each 获取所有数据 或 Database#prepare 接着多次使用 Statement#get 获取多行数据。

Database#each(sql, [param, ...], [callback], [complete])

执行带特定参数的SQL语句,然后每行调用一次回调函数。
返回:数据库对象,允许链式调用。

参数同 Database#run ,不同之处是

  • callback function(err, each_row) {}

    • 如果查询成功但结果为空,回调不会被调用
    • 其他情况,查询结果有多少行,回调将会调用多少次
  • complete 当回调 callback 全部调用完成后执行,
    function(err,num_of_rows){ }

  • 如果参数只传入一个函数,此函数将作为 callback 回调

  • 如果参数传入两个函数,此函数将作为 [callback, complete] 两个回调

Database#exec(sql, [callback])

执行所支持的各种sql语句,但不会获得任何结果,
返回:数据库对象,允许链式调用。

Database#prepare(sql, [param, ...], [callback])

预备执行 sql
返回:[Statement object]

Statement

Statement#bind([param, ...], [callback])

Statement#reset([callback])

Statement#finalize([callback])

Statement#run([param, ...], [callback])

Statement#get([param, ...], [callback])

Statement#all([param, ...], [callback])

Statement#each([param, ...], [callback], [complete])

posted @ 2020-02-03 19:02  北风卷地白草折  阅读(2306)  评论(0编辑  收藏  举报