尝试在Windows上使用PHP创建SQLite数据库时出错
我将在本页上学习SQLite教程 但是当我运行这个代码时,我得到了一个错误尝试在Windows上使用PHP创建SQLite数据库时出错,php,database,sqlite,permissions,Php,Database,Sqlite,Permissions,我将在本页上学习SQLite教程 但是当我运行这个代码时,我得到了一个错误 <?php class MyDB extends SQLite3 { function __construct() { $this->open('test.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } else {
<?php
class MyDB extends SQLite3
{
function __construct()
{
$this->open('test.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
} else {
echo "Opened database successfully\n";
}
?>
因此,错误在于程序无法创建数据库,但我在inetpub/wwwroot文件夹上,IIS对其拥有权限,而Turrial没有提及任何权限问题。知道为什么会这样吗?iis用户有权写入
wwwroot
?仅仅阅读是不够的。您正在创建一个文件,这意味着您需要创建/写入权限。在我看来,您没有创建数据库,您正在尝试打开一个数据库,您的数据库是否已经存在?不,它不存在。教程说“如果数据库不存在,那么将创建它,最后将返回一个数据库对象。”。不正确吗?@MarcB你是对的!IIS_IUSR可以访问wwwroot,但不能访问IUSR。我给了IUSR对wwwroot的写入权限,它成功了!谢谢
Fatal error: Uncaught exception 'Exception' with message 'Unable to open
database: unable to open database file' in C:\inetpub\wwwroot\cdb.php:6
Stack trace:
#0 C:\inetpub\wwwroot\cdb.php(6): SQLite3->open('test.db')
#1 C:\inetpub\wwwroot\cdb.php(9): MyDB->__construct()
#2 {main} thrown in C:\inetpub\wwwroot\cdb.php on line 6