2011-01-24 5 views
1

내 PHP 파일 중 하나가 내 데이터베이스에 레코드를 삽입하는 쿼리를 실행합니다. 다음은 코드입니다.IE에서만 PHP/MySQL 쿼리가 올바르게 실행됩니다!

$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ('1999', 0, 0, 0, 0, 0, 1, 1, 0, 'yahh')"; 
$result = mysql_query($query); 

일반적으로 값은 동적으로 생성됩니다. 그러나 내 쿼리가 실패하게 만드는 원인을 파악하기 위해 쿼리 자체에 값을 하드 코딩했습니다. 다음과 같은 일이 발생합니다.

1) IE를 사용하면 쿼리가 제대로 실행되고 모든 값이 포함 된 레코드가 삽입됩니다.

2) 다른 브라우저를 사용하면 'yahh'값이 삽입되지 않은 것을 제외하고는 쿼리가 올바르게 실행됩니다. 다른 값은 모두 그대로 삽입됩니다.

3) phpMyAdmin에 쿼리를 복사하여 붙여 넣으면 쿼리가 제대로 실행되고 모든 값 ('yahh'포함)이 삽입됩니다.

아무리 쿼리를 실행해도 오류는보고되지 않습니다.

이것은 내가 본 중에 가장 기괴한 버그입니다. 나는 이것이 무엇을 일으킬 수 있는지 전혀 모른다. 그것은 브라우저가 그것과 아무 상관이 없어 보이는 것 같습니다!

도움 주셔서 감사합니다.

+1

'error_reporting()'을 활성화하십시오. –

+0

@Michael 테이블 헤더의 구조를 표시 할 수 있습니까? – Marnix

+3

IE는 코드를 실행하지 않습니다. 서버 측에서 실행됩니다. –

답변

2

이 코드 줄만 있으면 정상적으로 작동합니다.

이 코드의 원인이되는 브라우저 기능 (사용자 에이전트 문자열, 쿠키 처리, 쿼리 문자열, 헤더 등을 검사하는)에 의존하는 쿼리 전에 실행되는 다른 코드가있을 수 있습니다. 오동작을하다.

작업중인 파일의 전체 소스처럼 더 많은 코드를 게시하면 문제를보다 쉽게 ​​공개 할 수 있습니다.

<input type="image" name="searched" value="foo"> 

... 그리고 나중에에이처럼 처리 :

$sql .= $_POST['searched']; 

Internet Explorer가 알려진이

+0

... 실제 코드를 볼 수 없었습니다 ... –

관련 문제