我正在尝试在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>被粘贴到地址栏中。
答案 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);
?>