我有一个php文件让我们说A.php
通过$_POST
方法获取一些变量并更新本地数据库。
另一个名为dataGather.php
的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
也包含正确格式的所有信息。
答案 0 :(得分:3)
我怀疑你直接运行你的php脚本而不使用web服务器,只需将脚本作为可执行文件启动即可。这是因为您的错误消息中有绝对路径。虽然运行像这样的PHP脚本是绝对正常的,但你必须问自己:cURL调用实际上是做什么的?它不打开并运行您尝试引用的php文件A.php
。为什么不?因为cURL会打开网址,而不是文件。如果不使用可以响应url请求的服务器(使用http服务器),你期望发生什么?
您收到的错误是超时,因为cURL尝试联系http服务器。由于您未指定有效的URL,因此很可能会回退到“localhost”。但那里没有服务器听...