为了账号安全,请及时绑定邮箱和手机立即绑定

WebSQL:SQLite 查询返回事务错误

WebSQL:SQLite 查询返回事务错误

胡子哥哥 2021-11-12 16:13:14
我正在尝试使用 WebSQLite 执行 SQL 事务。我遇到的问题是,每次运行代码时,都会收到一条 SQL 错误,指出:SQLError {code: 5, message: "could not prepare statement (1 near ")": syntax error)"}仅从外观上看,我无法弄清楚这个错误意味着什么,所以我尝试将我的 sql 查询打印到控制台并返回: INSERT INTO propertiesList (reporterName, propertyType, bedrooms, datetime, furnitureTypes, monthlyRentPrice, notes, propertyLocation, images) VALUES ('Israel', 'Flat', 'Studio', '1570494720000', 'Furnished', '150000', '', '', '')另外,这是我的代码结构:db.transaction(transaction => {                        transaction.executeSql(                            `CREATE TABLE IF NOT EXISTS propertiesList (                                id INTEGER PRIMARY KEY AUTOINCREMENT,                                reporterName TEXT NOT NULL,                                propertyType TEXT NOT NULL,                                bedrooms TEXT NOT NULL,                                 datetime TEXT NOT NULL,                                monthlyRentPrice TEXT NOT NULL,                                furnitureTypes TEXT,                                notes TEXT,                                propertyLocation TEXT,                                images TEXT,                             )`                        );                        if (duplicate === true) {                            msg = 'You have a property that have some similar details with this. Please check and update it instead';                        } else {                            const formData = new FormData();                            imageArray.forEach(image => formData.append('file[]', image));                            if (imageArray.length > 0) {                                axios.post(`https://cors-anywhere.herokuapp.com/http://laratweet.me/upload_photos`, formData).then(response => {                                    console.log('from uploading image', response);                                });                            } 我的问题是我无法弄清楚错误是什么或如何解决它,现在我被困在该项目上,因为除非“创建”功能有效,否则我无法继续网站的任何部分。任何帮助表示赞赏。提前致谢。
查看完整描述

1 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

固定的。


表创建中“图像文本”后的尾随逗号阻止了创建。


transaction.executeSql(sql)(未引用 db)。


var db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024);

  db.transaction(tx => {

    tx.executeSql(

      `CREATE TABLE IF NOT EXISTS propertiesList (

          id INTEGER PRIMARY KEY AUTOINCREMENT,

          reporterName TEXT NOT NULL,

          propertyType TEXT NOT NULL,

          bedrooms TEXT NOT NULL,

          datetime TEXT NOT NULL,

          monthlyRentPrice TEXT NOT NULL,

          furnitureTypes TEXT,

          notes TEXT,

          propertyLocation TEXT,

          images TEXT

       )`

    );

  });


  let sql = `INSERT INTO propertiesList (reporterName, propertyType, bedrooms, datetime, furnitureTypes, monthlyRentPrice, notes, propertyLocation, images) 

        VALUES ('Israel', 'Flat', 'Studio', '1570494720000', 'Furnished', '150000', '', '', '')`;

  db.transaction(tx=>{

      tx.executeSql(sql)

  })

W3C 在 2010 年停止积极维护 Web SQL 规范,并且没有进一步维护它的计划。请参阅 Web SQL 数据库。


我建议你使用,


IndexedDB API 很强大,但对于简单的情况来说似乎太复杂了。如果您更喜欢简单的 API,请尝试使用 localForage、dexie.js、ZangoDB、PouchDB、idb、idb-keyval 和 JsStore 等库,它们使 IndexedDB 对程序员更友好。


https://developers.google.com/web/tools/lighthouse/audits/web-sql


https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API


查看完整回答
反对 回复 2021-11-12
  • 1 回答
  • 0 关注
  • 516 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信