PHP PDO SQLITE - 错误"尝试编写只读数据库"

时间:2017-02-27 03:37:11

标签: php sqlite pdo windows-server-2012

我在Windows Server 2012 R2上安装了一个sqlite数据库文件。

数据库文件及其所在的目录都具有完全控制权限(修改,读取和执行,读取和写入),并且我能够从我的数据库查询数据而没有问题,但我无法写入数据库。

  

例外' PDOException'消息' SQLSTATE [HY000]:一般错误:8尝试编写只读数据库'在C:\ inetpub \ wwwroot \ newWebsite \ dbConnection.php:43堆栈跟踪:#0 C:\ inetpub \ wwwroot \ newWebsite \ dbConnection.php(43):PDOStatement-> execute()#1 {main}

我需要做些什么才能确保我的php脚本具有对数据库文件的完全读/写权限?

这是我的测试声明:

    function addUser($uname,$pass,$color) {
        include("dbConnection.php");

        try {
            $sql = "INSERT INTO tbl_users (col_uname, col_pass, col_color) VALUES (?,?,?)";
            $results = $db->prepare($sql);
            $results->bindParam(1,$uname,PDO::PARAM_STR);
            $results->bindParam(2,$pass,PDO::PARAM_STR);
            $results->bindParam(3,$color,PDO::PARAM_STR);
            $results->execute();
        } catch (Exception $e) {
            echo $e . " :Unable to add user";
            exit;
        }
    }

dbConnection.php 文件如下所示:

    try {
        $db = new PDO("sqlite:".__DIR__."/users.db");
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        echo '<br>Connection successful.';
    } catch(Exception $e) {
        echo $e->getMessage();
        echo '<br>Connection to the database was unsuccessful. Please check that path to the database file exists.';
        die();
    }

此致 Vaylain

1 个答案:

答案 0 :(得分:0)

对于关注此帖后的任何人......

我能够通过分配dbConnections.php及其所在的文件夹来解决我的问题,USERS组包含写访问权。