【问题标题】:Sqlite DB Error - could not prepare statementSqlite DB 错误 - 无法准备语句
【发布时间】:2014-04-09 07:12:11
【问题描述】:

我在 sqlite DB 的插入语句中收到以下错误

无法准备语句(“未定义”附近的 1:语法错误)

我尝试了两种插入的变体,因为两个错误都是一样的

var sql = "INSERT INTO Med(MedID) VALUES(?),";
sql += "['"+dataObj[i].MedID+"']";


var sql = "INSERT INTO Med(MedID) VALUES ('"+dataObj[i].MedID+"')";

tx.executeSql(sql);

【问题讨论】:

  • 这看起来不对:"['"+dataObj[i].MedID+"']"; 方括号不应该是 SQL 中标识符的一部分。您应该打印最终的 SQL 字符串以查看问题所在。
  • 第二个代码行怎么样。并且在打印最终的 sql 之后是 "INSERT INTO Med(MedID) VALUES(?),['10']";
  • 该 SQL 语句中没有“未定义”。

标签: sqlite


【解决方案1】:

SQL语句的正确给参方式如下:

var sql = "INSERT INTO Med(MedID) VALUES (?)";
tx.executeSql(sql, [dataObj[i].MedID]);

【讨论】:

  • var sql = "插入 Med(MedID) 值 ('"+dataObj[i].MedID+"')"; tx.executeSql(sql);这对我有用
【解决方案2】:

您似乎缺少表名和列名之间所需的空格。

试试这个:

var sql = "INSERT INTO Med (MedID) VALUES ('"+dataObj[i].MedID+"')";
tx.executeSql(sql);

确保您的 dataObj[i].MedID 也已定义。在你的 executeSql 语句之前添加一个 console.log(sql) 以在使用它之前检查命令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-19
    • 2018-04-10
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    相关资源
    最近更新 更多