Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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/0/xml/13.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
SQLite3-存储了错误的数据_Sqlite_Lua - Fatal编程技术网

SQLite3-存储了错误的数据

SQLite3-存储了错误的数据,sqlite,lua,Sqlite,Lua,我在数据库中的一些数据出错了 尝试存储Lua字符串,例如: foo = "1234..78.0" 数据库不返回任何错误。但是从SQLite 3数据库读取字符串时,它会返回奇怪的值,第一个数字是“-” 数据库: db:exec( "CREATE TABLE IF NOT EXISTS " "Pattern(" "Idx INTEGER PRIMARY KEY AUTOINCREMENT," "

我在数据库中的一些数据出错了

尝试存储Lua字符串,例如:

foo = "1234..78.0"
数据库不返回任何错误。但是从SQLite 3数据库读取字符串时,它会返回奇怪的值,第一个数字是“-”

数据库:

db:exec(    "CREATE TABLE IF NOT EXISTS "
              "Pattern("
              "Idx        INTEGER PRIMARY KEY AUTOINCREMENT,"
              "Strip      TEXT,"    
              "Startdigit INTEGER," 
              "Enddigit   INTEGER," 
              "Value      TEXT,"     -- < -- THIS FIELD IS THE ISSUE
              "Name       TEXT,"    
              "Message    TEXT,"  
              "Relatives  BLOB"     
           ")"
         )
其中(?)是在执行查询之前必须通过以下方式绑定的变量:

queries.newPattern:bind( idx , value ) -- binds value to (?) at (idx)th position
所有数据类型都正确,执行不会返回任何错误

err,errno=querys.newPattern:exec()

所以err和errno都是零

queries.newPattern:lastError() 
返回零

使用以下命令读取数据库:

db:exec("SELECT * FROM Pattern") 
返回所有正确的数据,但“值”字段除外,该字段已损坏

每次查询之后,SQLites的最后一个错误是nil,所以我假设没有数据类型不匹配或其他问题

返回值类似于(示例):


这里执行的是什么黑魔法?

因此我发现,SQLite正在将给定字符串解析为数值。这只是偶尔发生,并非总是。lua脚本中执行命令之前的最后一行,值是string类型,所以我猜是SDK引起了这个问题。您使用的是SQLite的什么绑定?此外,您不需要将绑定变量(
)括在括号中。
db:exec("SELECT * FROM Pattern") 
"-1434302411"