使用PHP Curl插入数据

时间:2019-12-10 06:25:37

标签: php api curl

我正在尝试使用curl将以下数据添加到我的数据库中。它插入的是数据,但插入的数据为空

员工姓名=测试

员工工资= 100

员工年龄= 28

这是我插入数据的代码:

// set post fields
$data["employee_name"] = "test";
$data["employee_salary"] = 1;
$data["employee_age"] = 1;

$ch = curl_init('http://localhost/cloud/v1/employees');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

// execute!
$response = curl_exec($ch);

// close the connection, release resources used
curl_close($ch);

// do anything you want with your response
var_dump($response);

这是我获取数据的功能:

function insert_employee()
    {
        global $connection;

        $data = json_decode(file_get_contents('php://input'), true);
        $employee_name=$data["employee_name"];
        $employee_salary=$data["employee_salary"];
        $employee_age=$data["employee_age"];
        echo $query="INSERT INTO employee SET employee_name='".$employee_name."', employee_salary='".$employee_salary."', employee_age='".$employee_age."'";
        if(mysqli_query($connection, $query))
        {
            $response=array(
                'status' => 1,
                'status_message' =>'Employee Added Successfully.'
            );
        }
        else
        {
            $response=array(
                'status' => 0,
                'status_message' =>'Employee Addition Failed.'
            );
        }
        header('Content-Type: application/json');
        echo json_encode($response);
    }

谢谢

1 个答案:

答案 0 :(得分:0)

替换此行:

$data = json_decode(file_get_contents('php://input'), true);

具有:

$data = $_POST;

PHP将获取您发布的数据,并将其直接推送到全局$_POST数组中。无需玩json_decode(除非您已发布JSON字符串)或php://input

但是请注意,盲目地信任发布的数据并将发布的变量连接到SQL语句中是一个巨大的安全漏洞!请查看准备好的语句并进行输入验证。