2014-02-15 3 views
0

사용자 항목을 기반으로 SQL 데이터베이스를 업데이트하려면 DataTables 및 jEdtiable을 사용하고 있습니다. 내 PHP 파일에 전달열 인덱스를 기반으로 한 SQL 업데이트 행

데이터는 다음과 같습니다


ROW_ID = HTML 테이블의 ID 컬럼의 데이터, 내 SQL 데이터베이스도 기본 키.

열 =

값을 편집 된 컬럼의 인덱스는 = 새 값이


내가 SQL 쿼리를 사용하여 테이블을 업데이트해야

그러나 테이블에 업데이트 할 I 올바른 행/열을 업데이트하려면 쿼리에서 열 인덱스를 사용하는 방법을 알아낼 수 없습니까?

+0

쇼 또는 다음 이후 우리는 특별히 당신을 제안 할 수 있습니다 샘플 코드를 추가 :) 감사합니다 –

+0

@ code360 어떤 다른 당신은 변수 이름이 아닌 다른 필요? 테이블 이름과 같은 경우에는 자리 표시자를 사용하는 것이 좋습니다. 업데이트하는 데 영향을 미치는 다른 코드는 없습니다. – TheBritishBloke

+0

괜찮아요. 시도해 보겠습니다. –

답변

1

열 인덱스를 열 이름에 매핑해야합니다.

  1. 정적 :이 매핑을 할 수있는 다른 방법이 몇 가지 있습니다.

    $columnName = $columnMap[$column]; // where $column is the column index passed to the PHP file. 
    

    :

    $columnMap = array(0 => 'column_1_name', 1 => 'column_2_name'); 
    

    이 그런 다음 SQL 쿼리에 사용할 열 이름을 알아낼과 같이 그 배열을 사용하여 서버에서 PHP 코드에서 다음과 같이 보입니다 배열을 저장 마지막으로 업데이트 SQL 쿼리에서 열 이름과 값을 사용하십시오. SQL 인젝션을 방지하려면 값을 올바르게 이스케이프해야합니다.

    데이터베이스 테이블 구조를 변경하는 경우 코드에서 배열을 업데이트해야한다는 단점이 있습니다. 아래 설명 된 두 번째 방법을 사용할 수있는 경우이 제한이 사라집니다.

  2. 동적으로입니다. 데이터베이스 (PDO, 일부 DB 프레임 워크 등)에 연결하는 데 사용하는 방법에 따라 데이터베이스의 테이블 구조를 반환하는 메소드가 있어야합니다. 이 메소드를 사용하여 테이블의 컬럼 이름을 순서대로 검색하고 컬럼 맵 배열을 동적으로 작성할 수 있습니다.

+0

일했습니다. – TheBritishBloke

관련 문제