这是我的 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}}方法。但是这些值不会插入数据库中。
如何解决此问题?
答案 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);
?>