【问题标题】:SQlite and PHP - Console issueSQlite 和 PHP - 控制台问题
【发布时间】:2014-02-24 15:10:51
【问题描述】:

在 Windows Server 2008 R2 上,我正在尝试设置计划任务以自动运行 PHP 脚本,然后调整 SQlite 数据库。我正在使用 SQlite,因为我需要使用数据库文件。每当我运行脚本时,它都会返回此错误:

但是当我在网络浏览器中运行它时,它可以完美运行。

我的代码是:

$db = new PDO("sqlite:server_status.db");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "SELECT * FROM stats";  
$results = $db->query($sql);  

foreach($results as $row) {  
    print_r($row);  
}  

【问题讨论】:

  • 看起来你的数据库不包含表'stats'。首先在sqlite数据库中创建表。
  • 它存在。它会在网络浏览器中正确显示。
  • 那么这似乎是一个安全问题。什么用户在计划任务中运行它?该用户是否有权访问您的 db 文件?
  • 它以SYSTEM身份运行,SYSTEM拥有完全控制权。

标签: php database sqlite pdo console


【解决方案1】:

我不是 PDO 或 SQLITE 方面的专家,但查看您的控制台输出,您当前的工作目录似乎是 c:/windows/system32,但这不是您的 Web 根目录。

因此,PDO 将在以下位置查找您的数据库文件:c:/windows/system32/server_status.db,我认为这不是正确的路径。

要么将你的 sqlite 数据库位置定义为以C:\ 开头的完整绝对路径,要么将当前目录更改为包含 sqlite 数据库文件的文件夹。

【讨论】:

  • 刚刚快速检查并确认。谢谢,我永远不会想到这一点。
猜你喜欢
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-14
  • 2011-05-28
  • 2020-03-10
相关资源
最近更新 更多