这是为了从URL获取数据并将其提交到数据库,它会出错: 查询为空;
我在那里放了一些东西来测试,是的,它给出了我设置的变量的值。提前致谢
<?php
require 'variables.php';
if(empty($_REQUEST['Key']) || empty($_REQUEST['Computer']) || empty($_REQUEST['Panel'])){
die("Nothing was given for me to give back :(");
}else{
$key = $_REQUEST['Key'];
$computer = $_REQUEST['Computer'];
$panel = $_REQUEST['Panel'];
$insertquery = mysql_query("INSERT INTO keys (Key, PC, Panel) VALUES ('".$key."', '".$computer."', '".$panel."')");
$sql = mysql_query($insertquery);
if($sql){
echo "good ". mysql_error();
}else{
echo "bad ". mysql_error();
echo "<br />".$key." ".$computer." ".$panel."";
}
}
?>
答案 0 :(得分:0)
您两次致电 mysql_query()
。这就是问题
这样做
<?php
require 'variables.php';
if(empty($_REQUEST['Key']) || empty($_REQUEST['Computer']) || empty($_REQUEST['Panel'])){
die("Nothing was given for me to give back :(");
}else{
$key = $_REQUEST['Key'];
$computer = $_REQUEST['Computer'];
$panel = $_REQUEST['Panel'];
$insertquery = "INSERT INTO keys (Key, PC, Panel) VALUES ('".$key."', '".$computer."', '".$panel."')";
$sql = mysql_query($insertquery);
if($sql){
echo "good ". mysql_error();
}else{
echo "bad ". mysql_error();
echo "<br />".$key." ".$computer." ".$panel."";
}
}
?>
答案 1 :(得分:0)
1.您的查询包含两个保留字key
和keys
,您需要用反引号(`)将它们括起来:
INSERT INTO `keys` (`Key`, PC, Panel)
您可以通过更改列名来避免这种情况。
2.您容易受到SQL注入攻击,切换到PDO或MySQLi并使用参数化查询。
答案 2 :(得分:0)
key 是一个mysql敏感词(保留字)。 - read more
你也在两次调用mysql_query。 您的SQL查询应如下所示:
mysql_query("INSERT INTO keys (`Key`, `PC`, `Panel`) VALUES ('".$key."', '".$computer."', '".$panel."')");
希望这有用。
答案 3 :(得分:0)
问题在于此代码:
$insertquery = mysql_query("INSERT INTO keys (Key, PC, Panel) VALUES ('".$key."', '".$computer."', '".$panel."')");
$sql = mysql_query($insertquery);
您将mysql_query
的结果传入mysql_query
。你应该改为:
$sql = mysql_query("INSERT INTO `keys` (`Key`, PC, Panel) VALUES ('$key', '$computer', '$panel')");
顺便说一下,您需要转义数据(SQL注入..)并使用新的API进行数据库连接(MySQLi / PDO)。
答案 4 :(得分:0)
正确的代码
<?php
require 'variables.php';
if(empty($_REQUEST['Key']) || empty($_REQUEST['Computer']) || empty($_REQUEST['Panel'])){
die("Nothing was given for me to give back :(");
}else{
$key = $_REQUEST['Key'];
$computer = $_REQUEST['Computer'];
$panel = $_REQUEST['Panel'];
$insertquery = ("INSERT INTO keys (Key, PC, Panel) VALUES ('".$key."', '".$computer."', '".$panel."')");
$sql = mysql_query($insertquery);
if($sql){
echo "good ". mysql_error();
}else{
echo "bad ". mysql_error();
echo "<br />".$key." ".$computer." ".$panel."";
}
}
?>
答案 5 :(得分:0)
这可能是数据库连接的问题,并且您使用mysql_query两次,这是不必要的。就保留关键词而言,尝试将它们写成
$insertquery = mysql_query("INSERT INTO keys (`Key`, `PC`, `Panel`) VALUES ('".$key."', '".$computer."', '".$panel."')");