PHP에 익숙하지 않아 데이터베이스에서 원시를 검색하려고하는데 결과가 항상 비어 있습니다. 다음 코드를 사용하여 테이블에 레코드를 삽입하고 작동했습니다. 결과는 1 원이 mysql_query는 항상 빈 값을 반환합니다.
PHP 파일에 사용 된 코드
를 삽입INSERT INTO `registeration`.`cars` (`lnumber`, `type`, `model`, `motor`, `owner`
,`expdate`) VALUES ('123654', 'Nissan maxima', '2008',
'1500', 'name name', '2013-11-30');
은 다음과 같습니다
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_error가 당신에게 무엇을 말합니까? 또한 : [** 새 코드에서 mysql_ * 함수를 사용하지 마십시오 **] (http://bit.ly/phpmsql). 그들은 더 이상 유지되지 않으며 [공식적으로 사용되지 않습니다] (http://j.mp/XqV7Lp). [** 빨간색 상자 **] (http://j.mp/Te9zIL)를 참조하십시오. 대신 [* prepared statements *] (http://j.mp/T9hLWi)에 대해 알아보고 [PDO] (http://php.net/pdo) 또는 [MySQLi] (http://php.net/)를 사용하십시오. mysqli) - [이 기사] (http://j.mp/QEx8IB)는 어떤 결정을 내리는 데 도움이 될 것입니다. PDO를 선택하면 [여기는 좋은 튜토리얼입니다] (http://j.mp/PoWehJ). – ceejayoz
** 경고 ** 귀하의 코드는 SQL 주입 공격에 취약합니다! –
'empty()'를 사용하여 쿼리를 확인하고 싶지 않습니다. 쿼리에 오류가 없으면 결과가 "비어 있음"(false)이됩니다. 'if (! empty ($ result)) {'를 제거하고 당신이하고있는 것처럼'mysql_num_rows'를 체크 할 것입니다. – showdev