代码之家  ›  专栏  ›  技术社区  ›  Agent69

使用PHP Curl插入数据

  •  0
  • Agent69  · 技术社区  · 4 年前

    我正在尝试使用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);
        }
    

    0 回复  |  直到 4 年前
        1
  •  0
  •   David    4 年前

    替换此行:

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

    使用:

    $data = $_POST;

    PHP将把您发布的数据直接推送到一个全局 $_POST json_decode (除非您发布了JSON字符串)或 php://input

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