SQL

2012-04-18 3 views
0

작동하지 INTO REPLACE 그래서 나는 그것의 ID (자동 증가 열 (기본 키))에 의해 데이터베이스에서 데이터를 얻을 값 속성을 통해 <input> 태그의 모든 필드를 표시 할 수있는 형태를 가지고있다. 그리고 양식을 제출할 때 ID 열의 ID가 이미 존재하지 않으면 새로운 행을 INSERT하고 동일한 ID를 가진 행의 나머지 데이터를 업데이트하고 싶으면 입력하십시오. SQL

나는이 조회 시도하고있다, 그러나 아무도는, 내가하려고 같은 일을 할 수는 항상 약간의 차이를 보인다. I는 INTO로 교체 발견 아래처럼 생성 :

$sqlString = 'REPLACE INTO coursework 
SET cwID=`'. $cwID .'`, 
cwTitle=`'. $cwTitle .'`, 
cwContent=`'. $cwContent .'`, 
cwProgress=`'. $cwProgress .'`, 
cwDue=`'. $cwDue .'`; 

모든 $ 시계 방향 [] 변수되는 함량이 $ _POST 방법으로부터 수신.

나는 오류 코드가 계속 '필드 목록'에서 1054 - 알 수없는 열을 '6'- '알 수없는 열'6 ' "MySQL은 $ _POST ['CWID의 $ CWID (값을 호출하려고 ']) 대신 cwID 열 (내 테이블의 기본 키)입니다. 간단하고 어리석은 무언가가있는 것처럼 느껴집니다.하지만 전에이 REPLACE INTO 방법을 사용한 적이 없습니다.

나는 INSERT IGNORE INTOINSERT ... ON DUPLICATE KEY UPDATE에 관한 게시물을 보았지만 그 둘은 내가 찾고있는 것보다 더 파괴적이었다.

은 그냥 CWID이 존재하고 자동 증가가 재치에 보관, 또는 어떤 ID가없는 경우 새 행이 추가되면 테이블이 업데이트되어 있는지 확인합니다. 방금 SELECT 쿼리를 실행하여 INSERT/UPDATE가 적절하게 존재하는지 확인해야합니까?

답변

1

http://dev.mysql.com/doc/refman/5.5/en/identifiers.html 따옴표와 함께 역 따옴표 교체를 참조하십시오 : 또한

$sqlString = 
"REPLACE INTO coursework SET cwID='$cwID', cwTitle='$cwTitle', cwContent='$cwContent', cwProgress='$cwProgress', cwDue='$cwDue'"; 

"이 변수를 보간 않습니다.

+0

저기 있습니다! 나는 그것이 어리 석다는 것을 알았습니다 ... 정말 고마워요! – jbingman

3

을 제거하십시오. 문자열을 둘러싼 백틱 (`)을 작은 따옴표 (')로 바꿉니다.

MySql은 사용중인 문자열로 이름 지정된 열을 값으로 찾으려고합니다.

+0

나는 그것을 시도했지만 쿼리를 더 많이 망칠 뿐이다. '오류 코드 : 1064 - SQL 구문에 오류가 있습니다. 근처 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 '안드로이드 02), cwContent = 읽기 및 \ "학습 안드로이드에 장 5-6 연구'포스트 데이터를 탈출 시도 @jbingman 라인 3' – jbingman

+0

에서 mysql_real_escape_string을 통해 .SQL 문을 기록하고 게시하는 데 도움이되지 않으면 뒤로 물음표가 도움이되지 않을 것입니다 .. –