Javascript 如何将sqlite3与node.js一起使用-什么是smt?
我希望能够将sqlite 3与node.js一起使用 我正在使用来自的代码,它工作得非常完美,但是我并不真正理解代码。例如:Javascript 如何将sqlite3与node.js一起使用-什么是smt?,javascript,node.js,sqlite,Javascript,Node.js,Sqlite,我希望能够将sqlite 3与node.js一起使用 我正在使用来自的代码,它工作得非常完美,但是我并不真正理解代码。例如: var sqlite3 = require('sqlite3').verbose(); var db = new sqlite3.Database(':memory:'); db.serialize(function() { db.run("CREATE TABLE lorem (info TEXT)"); var stmt = db.prepare("INS
var sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run("CREATE TABLE lorem (info TEXT)");
var stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (var i = 0; i < 10; i++) {
stmt.run("Ipsum " + i);
}
stmt.finalize();
db.each("SELECT rowid AS id, info FROM lorem", function(err, row) {
console.log(row.id + ": " + row.info);
});
});
db.close();
var sqlite3=require('sqlite3').verbose();
var db=new sqlite3.Database(':memory:');
序列化(函数(){
run(“创建表lorem(信息文本)”;
var stmt=db.prepare(“插入到lorem值(?);
对于(变量i=0;i<10;i++){
stmt.run(“Ipsum”+i);
}
stmt.finalize();
db.each(“选择rowid作为id,从lorem中选择信息”),函数(err,row){
console.log(row.id+“:”+row.info);
});
});
db.close();
- 首先,我不明白什么是
,或者它对stmt
smt都不起什么作用。完成
值之后,
做什么(?)
- 为什么要使用所有这些smt的东西,为什么不这样做:(它可以工作,我测试过。)
db.run(“创建表用户(id整数主键,名称文本)”; db.run(“插入用户值(1,\'manu\”)代码>
谢谢大家! 我猜您对
sqlite3
和nodejs
都是新手。变量stmt
只是一个变量,您可以将其更改为更具描述性的变量,如语句
或查询
(?)
字符串很可能是变量i
的占位符。
因此,您不会执行stmt.run()
十次。基本上,它将(?)
替换为stmt.run()
中的内容,因此类似于stmt.run('INSERT-INTO-lorem VALUES(Ipsum 1)')
,依此类推
使用stmt.run('SQL QUERY HERE')
很容易进行一次或两次操作。但是如果需要迭代,10000stmt.run()
似乎并不容易
文档:。对于前3个问题,请查看准备好的陈述。基本上这就是你的答案。至于最后一个,我们无法告诉您,当您没有显示此代码时,您做错了什么。因此,如果我想添加另一列,
db.run(“创建表lorem(信息文本,名称文本)”代码>如何在名称中插入值?是的,但是如何使用smt.run
插入值?变量stmt
只是一个占位符,因此您不会多次调用db.run()
。如果您想,并且希望应用程序能够扩展,可以使用stmt
。很抱歉,创建表“TEXT”
是用于数据类型的。您可以使用db.run(“insert into lorem VALUES('Some info','Manu')”)
将值插入表中。请注意单引号和双引号。它用于区分节点字符串和SQLite3查询字符串。您还可以执行db.run(“插入到lorem值(?)”、“一些信息”、“手动”)
。如果执行此操作,则会出现错误:manu@hecht:~$node-web/node-sqltest.js events.js:85 thrower;//未处理的“error”事件^error:SQLITE_error:table lorem有2列,但在出现错误时提供了1个值(本机)manu@hecht:~$