我正在使用此代码:
$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);
}