我正在使用此代码:

$DataSourceName = "..\Log4OM\Log4OM-Active.SQLite";
if(!file_exists($DataSourceName))
{
    $Msg = sprintf("%s does not exist", $DataSourceName);
    die($Msg);
}


该文件确实确实存在,并且该路径一直工作到今天早上。现在测试失败,应用程序终止。 “ is_file”公平没有更好。

我也使用此代码:

$connection = new PDO("sqlite:".$DataSourceName);
    // Set errormode to exceptions
$connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);


实际上,这确实会打开文件,并且应用程序可以正常运行。我知道这一点是因为我击败了第一个尝试的测试。不幸的是,在到达“ $ connection =“行之前,必须通过第一个测试。

我也尝试了fopen,但无法打开文件。文件名实际上是到实际文件的硬链接,但是用实际文件名替换也有同样的问题。文件权限看起来是正确的,并且与几天前相同。

最佳答案

不要依赖目录“ walking”。始终指定您以其开头的根(例如)__DIR__

$DataSourceName = __DIR__ . "\..\Log4OM\Log4OM-Active.SQLite";
if(!file_exists($DataSourceName))
{
    $Msg = sprintf("%s does not exist", $DataSourceName);
    die($Msg);
}

09-13 02:29