尝试在Windows上使用PHP创建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 {

我将在本页上学习SQLite教程

但是当我运行这个代码时,我得到了一个错误

<?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