我试图使用Rest Api在MySQL DB中创建新记录。但是, $ data 中存储的数据不包含我通过参数输入的任何值。
我试图回复/打印以查看其中包含的内容,但它没有任何内容。
网址:http://localhost/api/v1/test.php?firstname=Yacub?lastname=Ali 。 我可以获取数据而不是POST。
function insertQueue()
{
global $connection;
$data = json_decode(file_get_contents('php://input'), true);
echo $data;
var_dump($data);
$firstname = $data["userName"];
$lastname = $data["lastname"];
$organization = $data["organization"];
$type = $data["type"];
$service = $data["service"];
echo $query="INSERT INTO queue SET
firstname='".$firstname."',
lastname='".$lastname."',
organization='".$organization."',
type='".$type."',
service='".$service."'";
if(mysqli_query($connection, $query))
{
$response=array(
'status' => 1,
'status_message' =>'Added to queue successfully.'
);
}
else
{
$response=array(
'status' => 0,
'status_message' =>'Queue Insertion has failed.'
);
}
header('Content-Type: application/json');
echo json_encode($response);
}
答案 0 :(得分:4)
以下内容不是有效的网址。如果你想发送两者,你需要使用&
:
http://localhost/api/v1/test.php?firstname=Yacub?lastname=Ali
上面的正确的是:
http://localhost/api/v1/test.php?firstname=Yacub&lastname=Ali
其次,这是GET
请求。 POST
请求不会包含任何查询字符串。因此,将<form>
的方法更改为POST
:
<form action="my.php" method="post">
<!--------------------^^^^^^^^^^^^^
而不是使用它:
$data = json_decode(file_get_contents('php://input'), true);
你可以使用:
$data = $_POST; // After you convert the form method to POST.