2012-07-09 2 views
0

PHP와 MySQL 쿼리 생성을 처음 사용합니다. 대형 폼 용 프로세서가 있습니다. 몇 개의 입력란이 필요하며 대부분의 입력란은 사용자 선택 사항입니다. 필자의 경우 HTML ids와 MySQL 컬럼 이름은 동일하다. $ _POST를 INSERT INTO의 필드와 값으로 변환하기 위해 배열을 사용하는 방법에 대한 자습서를 찾았지만 시간이 지나면 작동하지 않습니다. 나는 배열과 변수를 사용하여 아주 간단한 INSERT를 만들기 위해 뒤로 물러 났지만 여전히 난처한 상황이다. 다음 행은 100 개 이상의 열이있는 데이터베이스에 5 개의 항목을 삽입하고 INSERT합니다. 첫 번째 4 개 항목은 문자열이고, 다섯 번째 항목 인 monthlyRental은 정수입니다.MySQL 용 구문 열 배열이있는 INSERT

$query = "INSERT INTO `$table` (country, stateProvince, city3, city3Geocode, monthlyRental) VALUES ('$country', '$stateProvince', '$city3', '$city3Geocode', '$monthlyRental')"; 

다음과 같이 내가 필드에 대한 배열을 만들고 그것을 사용 :

$colsx = array('country,', 'stateProvince,', 'city3,', 'city3Geocode,', 'monthlyRental'); 
$query = "INSERT INTO `$table` ('$colsx') VALUES ('$country', '$stateProvince', '$city3', '$city3Geocode', '$monthlyRental')"; 

나는 MySQL의 오류가 -에 대한 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 배열 '근처에 사용)'라인 1에서 밸류 ('미국', '뉴욕', '페어 포트, 몬로 카운티, 뉴욕', '(43.09)'.이 오류는 배열 항목에 쉼표가 단일 따옴표 또는 아닙니다. 나는 많은 독서를하고 많은 조합을 시도하고 그것을 얻을 수 없습니다. foreach 식으로 돌아가서 $ _POST 및 두 필드를 처리하기 전에 적절한 구문을 소규모로보고 싶습니다. 및 v 변수는 배열입니다. 그리고 네, mysql_real_escape_string을 사용해야한다는 것을 압니다.하지만 그것은 foreach의 쉬운 단계입니다. 마지막으로 값 배열에 대한 구문에 대한 몇 가지 단서가 도움이 될 것입니다. 특히 필드 배열과 다른 경우 유용합니다. 나는 MySQL autoincrement id를 트리거하기 위해 첫 번째 배열 항목으로 null을 추가해야한다는 것을 알고있다. 또 뭐야?

저는 꽤 새롭기 때문에 구체적으로 작성하십시오.

답변

4
$query = "INSERT INTO `$table` ('$colsx') etc... 

은 작동하지 않습니다. $ colsx 그래서 당신이 생산 끝날거야 것은

$query = "INSERT INTO `sometable` ('Array') 
            ^^^^^---yes, it'll literally say "Array" 
당신은이 일을하기 전에 사전 처리에 문자열로 배열을해야합니다

, 예를 들어, 문자 그대로, 배열이다

$colsx = array(...); 
$col_string = implode(',', $colsx); 
$query = "INSERT INTO `$table` ($col_string) etc..."; 
+0

감사합니다. implode 때문에 배열 문에서 쉼표를 제거해야했습니다. 훌륭하게 작동합니다. 이제 다음 학습 기회로 넘어갈 수 있습니다. 내가 배운 가장 중요한 것은 PHP에서 타입 정의의 중요성입니다. Javascript에서 왔어. –

+0

대부분의 경우, PHP는 타입 변환/변환에 매우 유용하지만, 배열은 배열을 문자열로 변환 할 수있는 무한한 방법이 있기 때문에 무엇을 해야할지 모를 곳 중 하나이므로 쉽게 쉽게 찾을 수 있습니다 모든 배열은 문자열 형식의 "배열"이라고 말합니다. –