代码之家  ›  专栏  ›  技术社区  ›  Todd Hunter

为什么DBD::SQLite不能通过我的Perl CGI脚本插入数据库?

  •  11
  • Todd Hunter  · 技术社区  · 17 年前

    我正在Perl CGI脚本中运行SQLite数据库,该脚本由 DBD::SQLite

    DBI连接工作正常,可以运行选择。但是,当我尝试插入时,我会得到一个带有以下错误的骰子:

    DBD::SQLite::st execute failed: unable to open database file(1) at dbdimp.c line 402 at index.cgi line 66
    

    有什么建议吗?

    5 回复  |  直到 17 年前
        1
  •  22
  •   Todd Hunter    17 年前

    SQLite需要能够在与数据库相同的目录中创建日志文件,然后才能进行任何修改。日记账用于支持事务回滚。

    发件人: seem to need write permission on db's parent directory

        2
  •  1
  •   Robert Harvey    17 年前

    SQLite文献建议您启动一个事务,收集该事务中的所有插入和更新,然后提交。这避免了大量连续的文件锁,并提高了性能。

        3
  •  1
  •   Community Mohan Dere    9 年前

    question .

    Attempt 如果子对象抛出的异常与正则表达式匹配,则重试,在我的例子中:

    qr(already in a transaction|database is locked)i
    
        4
  •  1
  •   sadesyllas    13 年前



    此外,如果你不想直接访问db文件(即使不使用特殊的服务器文件),它应该具有600等访问权限,如果不应该直接浏览包含目录(同样,即使不使用特定的服务器文件,它也应该具有700等访问权限。



    当然,如果包含目录中存在任何其他可以通过html、css或javascript访问的文件,则包含目录的权限不能为700。应该是755。

    推荐文章