2011-12-24 2 views
0

ID가 배열에없는 mysql 데이터베이스에서 모든 행을 삭제하려고합니다. 그래서 나는 시도했다 :ID가 배열에없는 모든 행을 삭제해야하는 내 코드가 무엇이 문제입니까?

@mysql_query("DELETE FROM something WHERE NUMBER NOT IN (".implode(",", $array).")"); 

어떻게 든이 doesnt는 무엇이나한다, 내가 보지 않고있는 과오는 있냐?

도움 주셔서 감사합니다. phpheini

+0

'$ array'가 비어 있으면 오류가 발생합니다. 그렇지 않으면 괜찮아 보인다. 또한'NUMBER' 필드가 유효합니까 ?? 또는 그것은'number'입니까? – tamilsweet

+0

배열은 비어 있지 않으며 필드는 실제로 NUMBER입니다. 흠, 그건 이상한 ... – phpheini

+0

'NUMBER'가 아닌'ID'이어야합니까? –

답변

0

당신이 주어진 코드에 어떤 문제가없는 것으로 보인다.

SQL 실행 전에 넣으십시오. 는 것입니다 예를 들어

echo "DELETE FROM something WHERE NUMBER NOT IN (".implode(",", $array).")"; 

는 ..

DELETE FROM something WHERE NUMBER NOT IN (1,2) 

과 같은 출력을 얻을. 그런 다음 mysql 클라이언트로 확인하십시오. 나는 당신이 쿼리를 기반으로 삭제할 데이터가 없다고 생각합니다. 또는 관계, 외래 키 등에서 문제가 발생할 수 있습니다. 그러나 mysql 클라이언트 도구에서 쿼리를 시도하면 정확한 문제가 발생할 수 있습니다.

프라 사드.

0

$ array가 비어 있거나 숫자가 아닌 값을 포함하면 쿼리가 오류를 반환 할 수 있습니다.

검사 오류과 같이 얻을 경우 :

mysql_query($sql) or die(mysql_error()); 
관련 문제