2014-02-06 2 views
1

설문 조사를하고 현재 데이터베이스에 19 개의 테이블과 약 100 개의 컬럼이 있습니다. 그들 모두는 필수 입력란에 삽입됩니다. 나는 그 많은 테이블과 컬럼에 삽입하는 우아하고 효율적인 방법을 찾고 있습니다. 지금까지 내가 생각해 낸 것은 테이블 이름으로 첫 번째 키를 포함하고 필드가있는 열 이름으로 두 번째 키를 포함하는 다차원 배열을 만드는 것입니다. 다음과 같은 것 :우아한 많은 테이블에 효율적으로 삽입하는 방법 MySQL

$tableArray = array( 
     'ownerTable' => array(
      'firstNameRow' => $firstName, 
      'lastNameRow' => $lastName 
     ), 
     'dealerTable' => array(
      'dealerNameRow' => $dealerName, 
      'dealerCityRow' => $dealerCity 
      ) 
     ); 

foreach($tableArray as $row => $key) { 
    foreach($tableArray[$row] as $row1) { 
     $sql = "(INSERT INTO $tableArray[$key] ($tableArray[$row]) VALUES ($row1)"; 
    } 
} 

나는이 코드를 테스트하지는 않았지만, 그 라인을 따라 뭔가 일할 것이라고 생각하고 있습니다. 나는 이것으로 볼 수있는 한 가지 문제는 각각의 테이블에 대해 INSERT 대신 각 열에 대해 별도의 INSERT이라고 생각합니다. 나는이 문제를 해결하기 위해 배열의 모든 값을 한 번에로드하는 코드를 작성하는 작업을 할 수 있지만 멀리 옮기기 시작하기 전에 큰 실수를하지 않고 시간을 낭비하지 않도록하고 싶습니다. 더 좋은 방법.

+1

19 테이블과 100 열은 설문 조사에 약간 비효율적 인 것으로 보입니다. – helion3

+1

답변으로 게시 하겠지만 확실하지 않습니다. "$ sql ="$ tableArray [$ key]. ") VALUES ("$ sql = "" . $ mysql_query ($ sql);'나는 mysql_query ($ sql);을 실행한다. 나는 내 전화기에 있지만 테이블 이름/값이 루프에 있어야하고 루프 외부에서 쿼리를 실행해야한다고 생각한다. 내 논리가 맞다면 삽입은 하나만되어야합니다. – KyleMassacre

+0

@ helion3 비효율적으로 무엇을 의미합니까? 열 개수 또는 테이블 개수에 대한 여러 열에 대한 몇 가지 테이블? 정직하게 아마 더 많은 테이블로 칼럼을 나눌 수 있었지만 부풀기의 대부분이 단순한 예 또는 대답이 없기 때문에 아마도 그들은 서로 관련이 있기 때문에 중요하지 않을 것입니다. – Yamaha32088

답변

0
$tableArray = array( 
     'ownerTable' => array(
      'firstNameRow' => $firstName, 
      'lastNameRow' => $lastName 
     ), 
     'dealerTable' => array(
      'dealerNameRow' => $dealerName, 
      'dealerCityRow' => $dealerCity 
      ) 
     ); 

//it's for bulj query execution in single statment; 
$i=1; 
$sql=""; 
foreach($tableArray as $row => $key) { 
    foreach($tableArray[$row] as $row1) { 
     //here you can update i value as per row for execution 
     if($i<=25) 
     { 
     $sql = $sql + "(INSERT INTO $tableArray[$key] ($tableArray[$row]) VALUES ($row1);"; 
     } 
     else 
     { 
      //execute sql statement here; 
      $i=0; 
      $sql=""; 
     } 
    } 
} 
관련 문제