Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SELECT返回与my DB中显示的id不同的id_Javascript_Node.js_Sqlite - Fatal编程技术网

Javascript SELECT返回与my DB中显示的id不同的id

Javascript SELECT返回与my DB中显示的id不同的id,javascript,node.js,sqlite,Javascript,Node.js,Sqlite,我试图创建一个表并在其中插入一些数据。首先,我知道.run是异步的,所以我想没有问题,因为我在中有它们。get否则我知道会得到错误,即表在代码的第一部分不存在 那么,我的问题在哪里;我在表格中插入了一些数据,当我在电脑上用DB浏览器查看时,一切都正常!,但是,当我运行代码时,随SELECT返回的row.uid不是数组中的row.uid 我不知道这是否重要,但我尝试插入的uid是一个长整数,比如:21254513617236003,但是我返回21254513617233600,请注意3现在的结尾是

我试图创建一个表并在其中插入一些数据。首先,我知道
.run
是异步的,所以我想没有问题,因为我在
中有它们。get
否则我知道会得到错误,即表在代码的第一部分不存在

那么,我的问题在哪里;我在表格中插入了一些数据,当我在电脑上用DB浏览器查看时,一切都正常!,但是,当我运行代码时,随
SELECT
返回的row.uid不是数组中的row.uid

我不知道这是否重要,但我尝试插入的uid是一个长整数,比如:
21254513617236003
,但是我返回
21254513617233600
,请注意
3
现在的结尾是
0
。我正在使用sqlite3模块

var my_array = [uid1,uid2...];

db.serialize(function() {
    db.run(`CREATE TABLE IF NOT EXISTS users (uid LONG PRIMARY KEY, value1 INTEGER, value2 INTEGER, value3 INTEGER)`);
    my_array.forEach(id => {
        db.get(`SELECT * FROM users WHERE uid='${id}'; `, (err, row) => {
            if(row == undefined) db.run(`INSERT INTO users (uid, value1, value2, value3) VALUES ('${id}',0,0,0)`);
            if(err) return;
        });
    });
});

//...

function my_f(uid, callback)
{
    db.get(`SELECT * FROM users WHERE uid='${uid}';`, function(error, row) {
        console.log(row.uid) // <----
        if(row == undefined){ 
            db.run(`INSERT INTO users (uid, value1, value2, value3) VALUES ('${uid}',0,0,0)`);
            return callback([uid,0,0,0]);
        }
        if(error) return;
        return callback([row.uid, row.value1, row.value2, row.value3]);
    });
}
var my_数组=[uid1,uid2…];
序列化(函数(){
run(`CREATE TABLE IF NOT EXISTS users(uid-LONG主键,value1-INTEGER,value2-INTEGER,value3-INTEGER)`);
my_array.forEach(id=>{
db.get(`SELECT*FROM users,其中uid='${id}';`,(err,row)=>{
if(row==未定义)db.run(`INSERT-INTO-users(uid,value1,value2,value3)值('${id}',0,0,0)`);
如果(错误)返回;
});
});
});
//...
函数my_f(uid,回调)
{
db.get(`SELECT*FROM users,其中uid='${uid}';`,函数(错误,行){

console.log(row.uid)//javascript有一个
数字。MAX_SAFE_INTEGER
<9007199254740991
…你已经超过了25个foldOkay,所以如果我想插入一个大于这个数字的数字,我应该怎么做?我知道有一个选项可以将该值设为字符串,并这样使用它,但我认为这根本没有效率。将UI设为字符串有什么问题D字符串?Java的
UUID
包括非数字。你打算用这个UID做算术吗?@TimBiegeleisen
Java
!=
javascript
javascript有一个
数字。MAX_SAFE_INTEGER
<9007199254740991…你已经超过了大约25个foldOkay,所以如果我想插入一个比这个数字大的数字我应该怎么做?我知道可以选择将该值设置为字符串,并这样使用它,但我认为这根本没有效率。将UID设置为字符串有什么错?Java的
UUID
包括非数字。你打算用这个UID做算术吗?@TimBiegeleisen
Java
!=
javascript