2011-11-09 1 views
-3

다음 코드를 사용하여 SQL 테이블에 레코드가 있는지 확인하려고합니다.SQL IF EXISTS 명령

if (EXISTS(SELECT * FROM Logs WHERE id=$id)){ 
     mysql_query("UPDATE Logs SET loglevel = $loglevel WHERE id = $id;"); 
     mysql_close($con); 
     echo "ID: ". $id . "'s new Logging Level is " . $loglevel . ".<br />"; 
    } 
    else{ 
     echo "ID: ". $id . "was not in the table " . ".<br />"; 
    } 

그러나이 오류가 계속 발생합니다.

Parse error: syntax error, unexpected T_STRING in /homepages/6/d382638756/htdocs/process.php on line 10

라인 10은 IF EXISTS가있는 라인입니다. 누군가 나를 도울 수 있습니까?

감사합니다,

애쉬 윈

+0

PHP를 SQL과 직접 섞는 것처럼 보입니다. 이것은 효과가 없을 것입니다. – Phil

+0

예기치 않은 문자열은'if ('- mySQL 구문을 PHP와 섞어 쓰는 것입니다 ... –

답변

1

당신은 아주 이상한 방법으로 SQL과 PHP를 혼합하고 있습니다. 나는 당신이 다음과 같은 것을 의미한다고 생각합니다 :

+3

'addslashes()', 심각하게 ? 최소한 mysql_real_escape_string()을 사용하십시오. – Phil

+0

우리는 대개 모두 UTF-8을 사용하고 유효 멀티 바이트 문자를 가진 아시아 문자 세트 중 하나는 사용하지 않으므로 두 번째 바이트가 따옴표/백 슬래시 인 경우에는 ' addslashes'. – AndreKR

0

PHP 구문을 MySQL 구문과 함께 사용하는 것처럼 보입니다.

주어진 예제 코드에 따르면, 당신은 ON DUPLICATE KEY UPDATE을 살펴볼 수 있습니다.