1

我有一个 php 文件,假设A.php它通过方法获取一些变量$_POST并更新本地数据库。

另一个具有该名称的 php 文件以dataGather.php正确的形式收集数据,然后尝试使用该A.php文件将数据发送到本地数据库。请注意,这两个文件都在同一个目录中。

我使用 curl 函数执行POST请求的代码如下:

    $url = "A.php";
    $ch = curl_init();
    $curlConfig = array(
        CURLOPT_URL            => $url,
        CURLOPT_POST           => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POSTFIELDS     => $datatopost
    );
    curl_setopt_array($ch, $curlConfig);
    $result = curl_exec($ch);
    curl_close($ch);
    echo $result;

$datatopost

是一个数组,如下所示:

$datatopost = array (
       "value1" => $val1,
       "value2" => $val2,
        etc
 }

问题是当我运行我的程序时,我得到以下结果:

Fatal error: Maximum execution time of 30 seconds exceeded in 
        C:\xampp\htdocs\dataGather.php on line 97

有谁知道为什么会这样?提前致谢

PS:该文件A.php是 100% 正确的,因为我已经通过收集 javascript 所需的信息对其进行了测试。它以我想要的方式通知数据库。该数组$datatopost还具有正确形式的所有信息。

4

1 回答 1

3

我怀疑你直接运行你的 php 脚本而不使用 web 服务器,而是简单地将脚本作为可执行文件启动。错误消息中有绝对路径这一事实表明了这一点。虽然运行这样的 php 脚本绝对没问题,但您必须问自己:该 cURL 调用实际上是做什么的?它不会打开并运行A.php您尝试引用的 php 文件。为什么不?因为 cURL 打开的是URL,而不是文件。如果不使用可以对 url 请求做出反应的服务器(例如 http 服务器),您期望会发生什么?

您得到的错误是超时,因为 cURL 尝试联系 http 服务器。由于您没有指定有效的 URL,它很可能会退回到“localhost”。但是那里没有服务器在听...

于 2012-11-26T00:00:16.200 回答