2013-07-07 2 views
0

PHP와 MySQL에 비교적 익숙하지 않아 도움이됩니다.데이터를 올바르게 삽입하는 데 문제가 있습니다.

일부 PHP 코드에 문제가있는 경우, 특히 양식 데이터를 mysql 데이터베이스에 삽입하는 경우. 아래 코드 샘플은 의도 된 방식이 아닌 작동합니다.

숫자로 한 번만 기록 할 수 있지만 레코드를 삽입 할 수 있습니다. FleetID에 대한 함대 간의 관계 때문이라고 생각합니다.

$query1 = "INSERT INTO `fleet` (`FleetID`, `frgn_branchid`, `Fleet`, `Driver`) VALUES ({$_POST['fleet']}, '{$_POST['BranchID']}', '{$_POST['fleet']}', '{$_POST['driver']}')"; 
    $query2 = "INSERT INTO `washes` (`WashID`, `frgn_fleetid`, `frgn_branchid`, `Washer`, `Type`, `CabState`, `TrailerState`, `Description`) VALUES (NULL,{$_POST['fleet']},'{$_POST['BranchID']}', '{$_POST['washer']}', '{$_POST['type']}', '{$_POST['cabState']}','{$_POST['trailerState']}','{$_POST['description']}')"; 
    $query3 = "INSERT INTO `branches` (`BranchID`, `branches`) VALUES ('{$_POST['BranchID']}', "; 

그러나 두 번 이상 추가하고 싶습니다. 예 : 01 : Testdata, 2012/02 : Moredata, 2013/01 : Extradata, 2014

질문 : fleetID를 자체적으로 증가시키고 그 옆에 '함대'를 저장할 수 있습니까? 그렇다면 어떻게?

감사

+0

FleetID, WashId 및 BranchID를 자동 증가 기본 키로 설정하고 삽입에서 삭제해야합니다. 또한 더 현대적인 mysql 라이브러리 (PDO 또는 mysqli)로 이동하고 매개 변수화 된 쿼리를 사용하는 것이 좋습니다. – Orangepill

+0

예를 들어 주시겠습니까? – Bookmonkey

답변

1

당신은 자동 증가 ID 년대로 FleetID, WashID 및 BranchID 년대를 설정하고 삽입에서 그들을 드롭 할 필요가,이 데이터베이스는 고유 한 값을 설정할 수 있습니다.

예를 들어이 방법 유효한 테이블 정의 당신이이 방법으로 공격하려고하는 첫 번째 문제는 당신이하지 않을입니다

$query1 = "INSERT INTO `fleet` (`frgn_branchid`, `Fleet`, `Driver`) ". 
      "VALUES ('".mysql_real_escape_string({$_POST['BranchID']})."',".      
      "'".mysql_real_escape_string({$_POST['fleet']})."',". 
      "'".mysql_real_escape_string({$_POST['driver']})."')"; 

를 삽입 할 때 다음

create table fleet (
     `FleetID` bigint not null auto_increment, 
     `frgn_branchid` bigint, 
     `Fleet` varchar(50) not null, 
     `Driver` varchar(50) not null, 
     primary key(FleetID) 
    ); 

것 삽입 후 이드가 무엇인지 알 수 있습니다. 이를 위해 mysql_insert_id (또는 mysqli 또는 pdo와 동등)를 사용해야한다.

관련 문제