그래서 두 개의 변수를 전달하기 위해 검색 스크립트와 meed를 만들었지 만 먼저 SQL QUery가 올바른지 확인하여 지금은 변수를 하드 코딩하고 있습니다.이 SQL IF 선언문의 문제점은 무엇입니까?
cannot run the query because: 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 'WHERE province IN ('Alberta','Ontario') ORDER BY surname LIMIT 0, 5' at line 1
: 쿼리가 실행될 때, 나는이 메시지가 다음
$sql = "SELECT * FROM persons WHERE 1=1";
if ($firstname)
$sql .= " AND firstname='" . mysqli_real_escape_string($mysqli,$firstname) . "'";
if ($surname)
$sql .= " AND surname='" . mysqli_real_escape_string($mysqli,$surname) . "'";
if ($province)
$sql .= " AND province='" . mysqli_real_escape_string($mysqli,$comma_separated) . "' WHERE province IN ($comma_separated)";
$sql .= " ORDER BY surname";
과 : 그래서 내 변수는이처럼 보이는 쿼리로 전달지고
$comma_separated = "'Alberta','Ontario'";
입니다
하지만 나에게 쿼리가 올바르게 보이는데, 여기서 내가 무엇을 놓치고 있습니까?
미리 감사드립니다. 당신은 두 번 거기에 WHERE
을 가질 수 없습니다
if ($province)
$sql .= " AND province IN (" . mysqli_real_escape_string($mysqli,$comma_separated) . ")";
은 전체 쿼리 –
편집을 게시 할 수 있습니다. 상기 참조하십시오. – JLA
쿼리에서'WHERE'를 두 번 사용했습니다. –