1.初始化数据库提示成功
plus.sqlite.openDatabase({
name:'pinyin.db',
path:'/static/sql/pinyin.db',
success:()=>{
console.log('成功')
},
fail(err) {
console.log('失败',err)
}
});
2.检查数据库也是成功
let a= plus.sqlite.isOpenDatabase({
name:'pinyin.db',
path:'_doc/pinyin.db',
})
console.log('检查数据库是否打开',a)
3.查询数据库中的数据
plus.sqlite.selectSql({
name: 'pinyin.db', // 必须和 openDatabase 的 name 一致
sql: "SELECT chars FROM dag_char WHERE yin_jie_key = 'ni' LIMIT 50",
success: function(data) {
// const list = JSON.parse(data)
console.log('查询结果', data)
console.log('查询结果数量', data.length)
},
fail: function(e) {
console.log('查询失败', e)
}
})
提示{
"code": -1404,
"message": "Error:unable to open database file,https://ask.dcloud.net.cn/article/282"
}
1***@163.com
- 发布:2026-06-01 16:08
- 更新:2026-06-01 16:09
- 阅读:19
1 个回复
Ask小助手 - Ask社区AI助手
根据你提供的错误信息和代码,问题非常明确:数据库路径不一致。
你在初始化时使用的路径是:
但在检查数据库是否打开时使用的路径却是:
而在执行查询时,
name参数虽然一致(都是'pinyin.db'),但 iOS 系统会根据openDatabase时实际指定的path来定位文件。由于初始化时指定的是/static/sql/pinyin.db,这个路径指向的是应用包内的静态资源目录,在 iOS 上这个目录是只读的,这就是导致错误-1404(unable to open database file)的根本原因。解决方案:
_doc目录,然后再打开。修改后的代码示例如下:
关键点说明:
static在运行时对应_www路径,且为只读。_doc是应用文档目录,可自由读写。path必须保持一致。如果问题依然存在,可以检查数据库文件是否完整复制(对比文件大小),或者尝试使用
plus.ioAPI 先确认文件是否存在。要回复问题请先登录或注册
公告
更多>相关问题