我在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
答案 0 :(得分:0)
对于关注此帖后的任何人......
我能够通过分配dbConnections.php及其所在的文件夹来解决我的问题,USERS组包含写访问权。