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

我已经为此工作了几个星期,但我再次面临文件问题。此代码表首先获取数据库中存在的所有条目,然后在获取一系列 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';

            }


        }

    }

}


弑天下
浏览 68回答 1
1回答

噜噜哒

我忘记发布我找到的解决方案作为答案。这里的问题在于,每次我用新文件覆盖旧文件时,出于我不知道的原因,文件的所有者和权限都会发生变化,从而阻止 apache 用户www-data&nbsp;从创建文件。项目文件夹是通过 ssh 发送的,因此每当我必须更新某些内容时,我只需使用&nbsp;chown&nbsp;和&nbsp;chmod&nbsp;来恢复用户和权限分别影响&nbsp;www-data&nbsp;和&nbsp;755&nbsp;的文件夹/文件。
打开App,查看更多内容
随时随地看视频慕课网APP