2012-10-15 3 views
0

MYSQL 업데이트 구문 오류

$count++; 
    $yesstring = 'MATCH'; 

    echo $count . '. RESULT ' . $idcheck . ': ' . $phonecheck . ' was matched. <br />'; 

    $matchquery = sprintf("UPDATE `list` SET match = `%s` WHERE homephone = `%s` LIMIT 1", 
     mysql_real_escape_string($yesstring), 
     mysql_real_escape_string($phonecheck)); 

    $matchresult = mysql_query($matchquery); 

    if (!$matchresult) { 
     die("Invalid query: " . mysql_error()); 
    } 

이 내 오류가 아래에있는 내 코드

잘못된 쿼리 : 당신은 당신의 SQL 구문에 오류가 있습니다; 근처 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인하십시오 '일치 = homePhone를 = (999) 999-9999 LIMIT 1 MATCH'라인에서 1

도움이

답변

2

match 주시면 감사하겠습니다 MySQL의에서 reserved word입니다 . 역 따옴표로 탈출 : 당신이 정기적으로 따옴표를 사용해야 할 때 역 따옴표를 사용하는

UPDATE `list` SET `match` = ... 
+0

아, 그 또한 좋은 지적입니다. – tadman

+0

그랬습니다. 나는 몰랐다. 열 이름을 바꿔 가면서이 모든 것이 좋다. –

1

. 역 따옴표는 테이블 또는 열 이름을 탈출을 위해 예약되어 있습니다

INSERT INTO `foo` VALUES ('value') 

하면 제대로 일정한 귀찮은 증명할 수 mysql_real_escape_string를 호출하여 SQL을 탈출하고 있지만. mysqli 또는 PDO로 전환하면 장기적으로 올바른 SQL을 훨씬 쉽게 작성할 수 있습니다.