我有一个页面,其中它将作为连接到我的API.php的for。 在这个页面中,我使用了Curl PUT动词并传递了URL和我需要传递的数据,这是数组的形式。
我尝试在API方面捕获响应,但无济于事。
这是我的代码。
他们需要填充的网址,或者我认为这是API
http://localhost/sample/index.php/2/users/mil/milastname/09876543212
图例:
示例 - 是我存储index.php
的文件夹2 - 是行动。在这种情况下,2代表PUT动词。
用户 - 是我要更新的数据库中的表。
mil - 是我的名字
milastname - 是我的姓氏
09876543212 - 是我的手机
我的表格
的index.php
$request = explode('/', trim($_SERVER['PATH_INFO'],'/'));
if ($request[0] == 2) {
$data = array(
"table" => $request[1],
"fname" => $request[2],
"lname" => $request[3],
"cntct" => $request[4]
);
$url_send ="http://localhost/api.php";
$str_data = json_encode($data);
$post_elements = array('data'=>$data);
if ($request[0] == 2) {
put($url_send, $post_elements);
echo put($url_send, $post_elements);
}
function put($url, $fields)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($fields));
echo curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query($fields));
$response = curl_exec($ch);
curl_close ($ch);
return $response;
}
这是我的API.php
if ($method == 'PUT') {
$data = preg_replace('/[^a-z0-9_]+/i','',array_shift($_POST));
echo $data;
die();
}
switch ($method) {
case 'PUT':
$sql = "update `$table` set $set where id=$key"; break;
case 'POST':
$sql = "insert into `$table` (user_fname, user_lname, user_contact) values ('$fname', '$lname', '$cntct')"; break;
case 'DELETE':
$sql = "delete `$table` where id=$key"; break;
}
$result = mysqli_query($link,$sql);
在if ($method == 'PUT')
我尝试插入一个echo和一个die来停止进程,我可以看到数组所以我可以在我的方法案例更新中安排更新查询。但它没有返回任何结果。
感谢您的帮助和遗憾。需要详细说明,以便我能清楚地解释我的问题。
感谢。