为了账号安全,请及时绑定邮箱和手机立即绑定

fopen() 函数被跳过 - 未创建文件 | PHP

fopen() 函数被跳过 - 未创建文件 | PHP

PHP
弑天下 2023-12-15 17:03:20
我已经为此工作了几个星期,但我再次面临文件问题。此代码表首先获取数据库中存在的所有条目,然后在获取一系列 id 后,使用附加的 WHERE 子句启动相同的查询来搜索属于客户的特定条目。< /span>最后,比较两个结果数组,以搜索数据库中存在但尚未分配给任何客户的任何条目,将其打印到 csv 文件中,以便启动代码的用户可以解决阻止这些条目链接到客户的问题。过去我遇到了一些有关文件和权限的问题,但这次没有出现错误,也没有消息提醒我我无权在所需位置打开文件或其他任何内容。我尝试沿着工作表插入一些var_dump(),看看该过程是否真的达到了fopen() 的效果。它只是跳过它,不创建文件也不写入数据。我查看了服务器日志,但没有发现任何内容,并且启用了错误和警告。这将从数据库中获取所有条目。$stmtOutgoing = $connAccounting->prepare("SELECT a.`zone`, b.`source_customer_billing_zone_id`, b.`source_external_subscriber_id`, count(*) AS llamadas, SUM((CEIL(b.`duration`))) AS duracion, SUM((b.`source_customer_cost`)/100) AS total, SUM((b.`source_customer_cost`)/100)/SUM((CEIL(b.`duration`))) AS precio                                              FROM `billing`.billing_zones a INNER JOIN cdr b                                             ON a.`id` = b.`source_customer_billing_zone_id`                                             WHERE source_provider_id = :reseller_id                                             GROUP BY b.`source_external_subscriber_id`, a.`zone`                                             ORDER BY total desc");$stmtOutgoing->execute(array('reseller_id' => $reseller));foreach ($stmtOutgoing as $row) {        array_push($totalEntries, $row);    echo "CDR Entry Added ";}获取 ids 后,将有一个 loop 将所有 ids 插入此查询中:foreach ($invoices as $invoice) {    if ($invoice['date'] >= $minDateSearchTstmp && !empty($invoice["customFields"]) && $invoice["customFields"][0]["field"] == "ID_EXTERNAL" && $invoice["customFields"][0]["value"] != "") {        $z = 0;        while ( isset($invoice['customFields'][$z]['field']) && $invoice['customFields'][$z]['field'] == 'ID_EXTERNAL' ) {            $source_external_subscriber_id = $invoice["customFields"][0]["value"];             renewConnection($connAccounting, $stmtOutgoing, $stmtIncoming);            require '../connections/accountingConnection.php';            }        }    }}
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

我忘记发布我找到的解决方案作为答案。这里的问题在于,每次我用新文件覆盖旧文件时,出于我不知道的原因,文件的所有者和权限都会发生变化,从而阻止 apache 用户www-data 从创建文件。

项目文件夹是通过 ssh 发送的,因此每当我必须更新某些内容时,我只需使用 chown 和 chmod 来恢复用户和权限分别影响 www-data 和 755 的文件夹/文件。


查看完整回答
反对 回复 2023-12-15
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信