이 웹 사이트는 관할권에 따라 특정 법률/규칙을 표시하기위한 것입니다.mysqli PHP 테이블 이름 하이픈 또는 공백으로
카운티를 발견하고이와 화면에 카운티 이름을 표시하는 간단한 mysqli 쿼리가 :
echo "><a href=\"index.php?sel_subj=" . urlencode($subject["county_name"]) . "\">
{$subject["county_name"]}</a></li>";
이 그럼 당신은 (링크 내장) 카운티 이름을 클릭을하고 mysqli 쿼리가가 그 카운티 이름을 가진 테이블을 찾아 그 카운티 내의 모든 관할 구역을 찾아야한다고 생각했습니다.
if (isset($_GET['sel_subj'])){
$query2 = "SELECT * FROM $sel_subj";
$result2 = $mysqli2->query($query2) or die($mysqli2->error.__LINE__);
while ($subject = mysqli_fetch_array($result2)) {
echo "<li";
echo "><a href=\"index.php?sel_page=" . urlencode($subject["muni_name"]);
echo "&sel_subj=" . urlencode($sel_subj). "\">
{$subject["muni_name"]}</a></li>";
}
}
문제는 일부 카운티 이름은 공백이나 하이픈을 포함한다는 것이다. 따라서 하이픈이나 공백이있는 카운티를 클릭하면 오류가 발생합니다.
하이픈이있는 경우이 오류가 발생합니다 (예 : Miami-Dade). SQL 구문에 오류가 있습니다. 오른쪽 구문을 사용하여 MySQL 서버 버전에 해당하는 매뉴얼을 확인하십시오. '-Dade'를 173에서 사용하십시오.
공백이 있으면이 오류가 발생합니다 (예 : Palm Beach) : 테이블 'florida.palm' 존재하지 않습니다. 73
카운티가 특수 문자가없는 문자열 일 경우, 관할 구역은 아무 문제없이 표시됩니다.
간단한 해결책이 있습니까?
해커에게 ** 크기 **의 구멍을 제공 하시겠습니까? –
어디에서 $ sel_subj 값을 설정합니까 – Anigel
@Anigel 아마도 글로벌 변수가 켜져있을 수 있습니다. 어떤, user2436671, 당신은 돌봐야 만합니다. – MaX