通过php发布查询到mysql,而不是将链接放在地址栏中

时间:2013-11-05 22:40:46

标签: php mysql

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

如果我将此链接粘贴到我的地址栏中,然后按回车键,我将能够向数据库添加记录,无论是从哪个网站或浏览器:

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代码,生成链接并发布数据,就像它< em>被粘贴到地址栏中。

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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);

?>