使用curl将值插入数据库

时间:2018-08-16 09:10:48

标签: php

这是我的 index.php 文件

<?php
   $data = array("name"=>"ohidul","age"=>25);
   $string = http_build_query($data);
   $ch = curl_init("http://localhost/curl/send_data_to_server/data.php");
   curl_setopt($ch, CURLOPT_POST,true);
   curl_setopt($ch, CURLOPT_POSTFIELDS,$string);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
   curl_exec($ch);
   curl_close($ch);
?>

这是我的 data.php 文件

<?php 
   if(isset($_POST['name'],$_POST['age'])){
      $db = new Mysql('localhost','root','','postdata');
      $name = $db->real_escape_string($_POST['name']);
      $age = (int) $_POST['age'];
      $query = "INSET INTO data SET mydata='$name,$age'";
      $db->query($query);
   }
?>

在这里,我要将index.ph p的值存储到数据库中。我正在使用curl的{​​{1}}方法。但是这些值不会插入数据库中。

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

您使用的查询错误。应该是这样的。

$query = "INSERT INTO data(name, age) VALUES ('$name','$age')";

您可能要考虑使用参数,而不是简单地将变量放入查询中以防止SQL注入。

答案 1 :(得分:0)

我想问题在于您尝试发布数据的方式,您不需要执行http_build_query(),而是需要使用CURLOPT_POSTFIELDS选项传递数组。

请参见以下代码:

<?php
   $data = array("name"=>"ohidul","age"=>25);
   $ch = curl_init("http://localhost/curl/send_data_to_server/data.php");
   curl_setopt($ch, CURLOPT_POST,true);
   curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
   curl_exec($ch);
   curl_close($ch);
?>