簡體   English   中英

mysql_query總是返回空

[英]mysql_query always return empty

我是php的新手,我試圖從數據庫中檢索原始數據,結果始終為空。 我已經使用以下代碼在表中插入一條記錄,並且它起作用了。

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"}

您的代碼不正確。 mysql函數在FAILURE上返回boolean false,例如發生錯誤時。 mysql_query要么返回結果句柄(查詢成功運行),要么返回布爾值FALSE(被炸掉)。

沒有行的結果集不是錯誤。 這只是一個空集。 該代碼應該更像

$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注入攻擊的攻擊 在使用PHP / sql進行任何其他工作之前,請閱讀並了解如何防止這些攻擊

首先,您將要考慮從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.
}

然后執行您將要處理的數據庫信息。

只需刪除此測試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);
}

謝謝大家的寶貴意見和建議,我不想以錯誤的方式開始,我是一名Android開發人員,我需要為正在工作的項目學習php,很高興知道這些示例已經很老了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM