gpt4 book ai didi

SQLite错误无法识别的 token Unity

转载 作者:行者123 更新时间:2023-12-02 17:33:47 28 4
gpt4 key购买 nike

我正在使用 Unity,这是我的代码的一小段。我想做的就是将 data.tokendata.expire 放入 SQLite 中。由于某种原因,它不断向我抛出一个错误:

SqliteException: SQLite error
unrecognized token: "587503bc773a565d52401c87"
Mono.Data.Sqlite.SQLite3.Prepare (Mono.Data.Sqlite.SqliteConnection cnn, System.String strSql, Mono.Data.Sqlite.SqliteStatement previous, UInt32 timeoutMS, System.String& strRemain)
Mono.Data.Sqlite.SqliteCommand.BuildNextCommand ()

我不知道 token 是如何无法识别的,在 SQLite 中,Token 字段是 STRINGExpire 字段是 >整数

IncomingTokenData data = IncomingTokenData.CreateFromJSON(www.text);

string conn = "URI=file:" + Application.dataPath + "/MyDataBase.s3db"; //Path to database.
var sqlQuery = "INSERT INTO MyDataBase(Token, Expire) VALUES(" + data.token +", " + data.expire + ")";

if(!string.IsNullOrEmpty(www.error)) {
ErrText.text = "Error: " + www.error;
}else{
if(data.pass == "1"){
IDbConnection dbconn;
dbconn = (IDbConnection) new SqliteConnection(conn);
dbconn.Open(); //Open connection to the database.
IDbCommand dbcmd = dbconn.CreateCommand();
dbcmd.CommandText = sqlQuery;
dbcmd.ExecuteNonQuery();

最佳答案

在 SQL 查询中,您应该将字符串值括在单引号中(在本例中,将引号放在 data.token 周围):

var sqlQuery = "INSERT INTO MyDataBase(Token, Expire) VALUES('" + data.token +"', " + data.expire + ")";

请注意,字符串连接并不是构建 SQL 查询的最佳方法 - 避免这些问题的更可靠方法是使用占位符,例如 built-in functionality IDbCommand has用于添加参数:

var sqlQuery = "INSERT INTO MyDataBase(Token, Expire) VALUES(@token, @expire)";

if(!string.IsNullOrEmpty(www.error)) {
ErrText.text = "Error: " + www.error;
}else{
if(data.pass == "1"){
IDbConnection dbconn;
dbconn = (IDbConnection) new SqliteConnection(conn);
dbconn.Open(); //Open connection to the database.
IDbCommand dbcmd = dbconn.CreateCommand();
dbcmd.Parameters.Add("@token", SqlDbType.VarChar).Value = data.token;
dbcmd.Parameters.Add("@expire", SqlDbType.Int).Value = data.expire;
dbcmd.CommandText = sqlQuery;
dbcmd.ExecuteNonQuery();

使用此方法,可以根据数据类型对值进行正确格式化。

关于SQLite错误无法识别的 token Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41573274/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com