php - file_exists & is_file 不工作

标签 php sqlite

我正在使用这段代码:

$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,它无法打开文件。文件名实际上是真实文件的硬链接(hard link),但是替换真实文件名也有同样的问题。文件权限看起来是正确的,和几天前一样。

最佳答案

不要依赖目录“行走”。始终指定您开始的根目录(例如)__DIR__

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

关于php - file_exists & is_file 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939505/

相关文章:

php - 对数据库中的用户 'timeline' 事件进行建模的最佳方法

javascript - 计数超过限制后如何添加类

PHP 标题取决于变量

php - 使用 SQL 从不同表中搜索表单

sqlite - 如何在phonegap应用程序中存储翻译并保存用户首选项?

javascript - SQL 删除未按预期工作

php - 在 PHP 中从父类(super class)获取子类命名空间

mysql - 如何从 mySql 创建和编辑数据库文件 .db?

android - 如何将我的 SQLITE 数据库保存到 Google 云端硬盘?

mysql - 为不同的 id sqlite 选择前 1 行