[英]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.