programing

PHP MYSQL - 열 이름을 사용하지 않고 자동 증분 필드를 사용하여 에 삽입합니다.

goodsources 2022. 9. 6. 22:34
반응형

PHP MYSQL - 열 이름을 사용하지 않고 자동 증분 필드를 사용하여 에 삽입합니다.

32개의 필드가 있는 긴 행을 MySQL 테이블에 삽입해야 합니다.

저는 다음과 같은 것을 하고 싶습니다.

$sql="insert into tblname values (... 32 fields ...)";

필드가 MySQL 테이블 필드와 같은 순서로 되어 있으면 정상적으로 동작합니다.그러나 내 테이블은 첫 번째 필드로 자동 증가 ID가 있습니다.

제가 원하는 것은 첫 번째 테이블 이름을 제외한 모든 테이블 이름을 기입하는 것입니다.

제안사항?

그냥 사용하다NULL첫 번째 가치로서autoincrement필드는 정상적으로 동작합니다.

INSERT INTO tblname VALUES (NULL, ... 32 Fields ... )

삽입NULL자동 인식 필드에 입력합니다.

이 스크립트가 해킹스크립트가 아닌 한 필드명을 사용하는 것을 권장합니다.그 이유는 테이블에 필드를 추가하거나 순서를 변경하면 코드가 끊어지기 때문입니다.

대신 필드 이름을 명시하면 나중에 훨씬 더 잘 될 것입니다.

삽입 쿼리에서 열 이름을 사용하지 않을 때는 열 값을 생략해야 합니다.

위의 정보가 잘못된 경우 알려 주십시오.

다음은 제가 사용한 간단한 숏컷입니다.

$fieldlist=$vallist='';
foreach ($_POST as $key => $value) {
 $fieldlist.=$key.',';
 $vallist.='\''.urlencode($value).'\','; }
$fieldlist=substr($fieldlist, 0, -1);
$vallist=substr($vallist, 0, -1);
$sql='INSERT INTO customer_info ('.$fieldlist.') VALUES ('.$vallist.')'; 

이 코드는 SQL Injection에 취약하므로 PDO에 맞게 수정해야 합니다만, 이 단순화된 스크립트는 원래 게시된 코드에 대한 질문에 보다 직접적으로 답변할 수 있을 것 같습니다.

언급URL : https://stackoverflow.com/questions/1871331/php-mysql-insert-into-without-using-column-names-but-with-autoincrement-field

반응형