在PHP中,是否有可能在while循环内向链接发送POST数据?
在PHP中,是否有可能在while循环内向链接发送POST数据?
我正在使用基本的PHP和AJAX,并且我想将从MySQL数据库中选择的数据发布到在线链接,并获取返回的响应以用于更新其他信息。我正在使用AJAX来发布数据,但我无法获取返回的数据以用于更新信息。
是否可以直接使用PHP来实现?怎么做?什么是最佳方法?
代码:
$sql = $conn->query("SELECT * FROM hospitals"); if($sql){ // $json_array = array(); while($row = $sql->fetch_assoc()){ $output = '{"h_code": "' . $row['h_code'] . '", "h_name": "' . $row['h_name'] . '"}'; ?> query("UPDATE hospital SET h_online_id= "); } }
AJAX调用的响应'data'返回了我想要更新本地数据库中的一列的在线数据库的值。
在PHP中,使用while循环POST数据到链接的问题的原因是PHP是服务器端的,而JavaScript是客户端的。所以在while循环中,JavaScript代码会被写入页面多次,导致POST数据到链接的操作也会执行多次,这可能不是我们想要的结果。
为了解决这个问题,可以使用CURL来代替JavaScript。CURL是一个用于与服务器进行通信的库,可以通过PHP代码发送HTTP请求。
以下是使用CURL的示例代码:
$ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://example.com/api/link"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "postvar1=value1&postvar2=value2&postvar3=value3"); // 修改$postvar的值 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $server_output = curl_exec($ch); curl_close ($ch); // 进一步处理... if ($server_output == "OK") { ... } else { ... }
通过使用CURL,我们可以在PHP代码中直接发送POST请求,并获得服务器的响应。这样就避免了在while循环中多次执行相同的操作,从而解决了问题。
感谢您的提问,希望以上解决方法对您有帮助。