0

我正在尝试在 php 中创建一个链接,并提交该链接,以便它将其中包含的数据发布到我的 mysql 数据库中。

如果我将此链接粘贴到我的地址栏中,然后按 Enter,无论来自哪个网站或浏览器,我都可以向数据库添加一条记录:

http://mysite.com/data.php?first=bob&last=smith

data.php 看起来像这样:

<? 
include("dbinfo.inc.php");

$first = $_GET['first'];
$last = $_GET['last'];

$query = "INSERT INTO db1 (first,last) VALUES ('$first','$last')";
mysql_query($query);

mysql_close();
?> 

但我想做的是在另一个站点上构建字符串,生成链接并发送它,就好像它被粘贴到地址栏中一样:

例如,假设在网站 B 我有 send.php 的代码:

<?
include('http://mysite.com/data.php?first=bob&last=smith');
?>

但这会产生错误

然后我尝试了:

<?
$url = 'http://mysite.com/data.php?first=bob&last=smith';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_close($ch);

?>

但这不会发布到数据库。

所以,如果我将链接直接放在浏览器地址栏中,它将发布到数据库,但我想创建 php 代码,以生成链接并发布数据,就好像它粘贴到地址栏中一样。

4

2 回答 2

0

您的文件写入不正确。变量与查询不匹配,您没有转义它们。我也用过mysqli,因为mysql是贬值的。请记住,这不是一个好方法,但无论如何我都会回答这个问题。

include("dbinfo.inc.php");

$first= mysqli_real_escape_string($_GET['first']);
$last = mysqli_real_escape_string($_GET['last']);

$query = "INSERT INTO db1 (first,last) VALUES ('$first','$last')";
mysqli_query($connection, $query);

mysqli_close();
于 2013-11-05T22:49:03.693 回答
0

这是解决方案:

<?
$url = 'http://mysite.com/data.php?first=bob&last=smith';    

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, $url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
//echo $result;

curl_close($ch);

?>
于 2013-11-05T23:31:59.157 回答