mysql_query总是返回空

时间:2013-04-26 18:25:36

标签: php mysql

我对php有点新,我试图从数据库中检索raw,结果总是空的。我使用以下代码在表中插入记录并且它有效。

INSERT INTO `registeration`.`cars` (`lnumber`, `type`, `model`, `motor`, `owner`
,`expdate`) VALUES ('123654', 'Nissan maxima', '2008', 
'1500', 'name name', '2013-11-30');

结果是1个原始插入

php文件中使用的代码是:

if (isset($_GET["lnumber"])) {
$lnumber = $_GET['lnumber'];
echo $lnumber;
$result = mysql_query("SELECT * FROM cars WHERE lnumber = $lnumber");
if (!empty($result)) {
    // check for empty result
    if (mysql_num_rows($result) > 0) {
        ....code....

    }
} else {
    // no car found
    $response["success"] = 0;
    $response["message"] = "No cars found";

    // echo no users JSON
    echo json_encode($response);
    }
    } else {
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
    }

但是,结果总是:123654{"success":0,"message":"No cars found"}

4 个答案:

答案 0 :(得分:1)

您的代码不正确。 mysql函数在FAILURE上返回boolean false,例如发生错误时mysql_query要么返回一个结果句柄(查询成功运行),要么返回一个布尔值为FALSE(某些东西爆炸)。

没有行的结果集 NOT 错误。它只是一个空集。代码应该更像

$result = mysql_query($sql) or die(mysql_error()); // handle any error conditions
if (mysql_num_rows($result) == 0) {
  echo 'no records found';
} else {
  ... build your json here ...
}

正如其他人上面所说,mysql _ *()函数已经过时并且已弃用。您应该使用mysqli或PDO。

正如其他人所说,你很容易受到SQL injection attacks的攻击。阅读并了解如何在使用PHP / sql进行更多工作之前预防这些问题

答案 1 :(得分:0)

首先,您需要考虑从mysql_*转移到mysqli_*或PDO。其次,您需要适当地获取信息:

$result = mysql_query("SELECT * FROM cars WHERE lnumber = '$lnumber'");

if(mysql_num_rows($result) > 0)
{
    while($row = mysql_fetch_array($result))
    {
        echo $row['car'];
    }
}
else
{
    // No cars.
}

然后做你将要处理的数据库信息。

答案 2 :(得分:0)

只需删除此测试if (!empty($result))并添加die(mysql_error());

即可
$result = mysql_query("SELECT * FROM cars WHERE lnumber = $lnumber") or die(mysql_error());

// check for empty result
if (mysql_num_rows($result) > 0) {
    ....code....

} else {
    // no car found
    $response["success"] = 0;
    $response["message"] = "No cars found";

    // echo no users JSON
    echo json_encode($response);
}

答案 3 :(得分:0)

谢谢你们所有的好评和建议,我不想开始错误的方式,我是一个Android开发人员,我需要学习一个项目即时工作的PHP,很高兴知道这些例子已经过时了。