我最近负责创建一个可以完成以下几项操作的脚本: - 从$ _POST解析数据 - 将该数据插入本地数据库 - 将该数据作为POST发送给第三方
前两个目标很简单。获取数据,清理并验证它,将其插入我的数据库。完成,完成和完成。
我遇到了第三个目标的问题。在审查我的选项后,我确定cURL符合该法案,但不幸的是,我无法让它工作。我试过搜索SO和谷歌,但我的搜索结果没有发现任何有用的东西。
这是我的" insert_data.php"文件。没有错误,没有失败,没有。如果我为$data
手动定义数组,它就像一个魅力。
<?php
$data = $_POST;
$mysqli = new mysqli('localhost', 'root', 'password', 'database_name');
$key_list = implode(',', array_keys($data));
$val_list = implode(',', array_fill(0, count($data), '?'));
$types = str_repeat('s', count($data));
$query = "INSERT INTO leads ($key_list) VALUES ($val_list)";
if ( !$stmt = $mysqli->prepare($query) )
{
die('connection error');
} else
{
$stmt->bind_param($types, $data['first_name'], $data['last_name'], $data['email'])
if ( !$stmt->execute() )
{
die('execution error');
}
else
{
die('success');
}
}
?>
这是我的&#34; send_curl.php&#34;文件。我认为我的cURL使用有问题,但对于我的生活,我无法弄明白。
<?php
$data = array(
'first_name' => 'John',
'last_name' => 'Doe',
'email' => 'user@domain.com',
);
$url = 'insert_data.php';
$fields = '';
foreach($data as $key => $value) {
$fields .= $key . '=' . $value . '&';
}
rtrim($fields, '&');
$post = curl_init();
curl_setopt($post, CURLOPT_URL, $url);
curl_setopt($post, CURLOPT_POST, count($data));
curl_setopt($post, CURLOPT_POSTFIELDS, $fields);
curl_setopt($post, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($post);
curl_close($post);
if (isset($result))
{
echo "<pre>";
print_r($result);
echo "</pre>";
}
else
{
die('$result not set');
}
?>
我做错了什么?您的帮助非常赞赏。
答案 0 :(得分:0)
这是在您的代码和&amp;不是网址:
$url = 'insert_data.php';
网址应为完整网址,如下所示:
$url = 'http://my.great.site.here/insert_data.php';
有关如何处理curl_init
网址的详细信息,请访问the official PHP manual entry。