데이터베이스에서 특정 프로필을 검색하는 스크립트를 만들었습니다.검색 스크립트에서 Mysql 오류가 발생했습니다.
if(!empty($playerLastName)){
$searchQuery .= 'WHERE playerLastName LIKE "%' . $playerLastName . '%" AND playerStatus = 1';
}
if(!empty($playerAge)){
$searchQuery .= (!empty($searchQuery) ? ' AND ' : 'WHERE ') . 'playerAge = "' . $playerAge . '"';
}
if(is_numeric($playerSex)){
$searchQuery .= (!empty($searchQuery) ? ' AND ' : 'WHERE ') . 'playerSex = ' . $playerSex .'" AND playerStatus = 1';
}
if(!empty($playerPosition)){
$searchQuery .= (!empty($searchQuery) ? ' AND ' : 'WHERE ') . 'playerPosition = "' . $playerPosition . '" AND playerStatus = 1';
}
if(!empty($playerCitizenship)){
$searchQuery .= (!empty($searchQuery) ? ' AND ' : 'WHERE ') . 'playerCitizenship = "' . $playerCitizenship . '" AND playerStatus = 1';
}
지금까지는 그렇게 좋았습니다. 이 코드 문자열 :
if (is_numeric ($ playerSex)) {
$ SearchQuery. = (! empty ($ SearchQuery)? 'AND': 'WHERE'). 'playerSex ='. $ playerSex;
섹스에 따라 플레이어를 보여줍니다,하지만 난 추가하는 경우 :
You have an error in your SQL syntax; check the manual That corresponds to your MySQL server version for the right syntax to use near '"AND playerStatus = 1' at line 1.
나는 이유를 이해하지 않습니다 :
'"AND playerStatus = 1';
$ SearchQuery. = (! empty ($ SearchQuery)? 'AND': 'WHERE'). 'playerSex ='. $ playerSex .'"AND playerStatus = 1';
나는이 오류 - (
나는'$ searchQuery'를 출력 할 것을 제안합니다. 네가 생각하는 것처럼 보이지 않는 것 같아. – andrewsi
'''을 공백으로 대체하십시오. –
각 개별 검색 옵션을 배열에 넣은 다음 SQL 문을 생성하도록 해당 배열을 파싱하는 것이 좋습니다. 이렇게하면 코드를 훨씬 쉽게 유지 보수 할 수있을뿐만 아니라 읽기. – andrewsi