MySQL查询为空

时间:2013-09-21 13:11:56

标签: php mysql

这是为了从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."";
}
}

?>

6 个答案:

答案 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.您的查询包含两个保留字keykeys,您需要用反引号(`)将它们括起来:

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."')");