2013-07-07 56 views
0

我相對較新的PHP和MySQL,並希望得到一些幫助。問題正確插入數據

對某些PHP代碼有問題,特別是將表單數據插入到mysql數據庫中。下面的代碼示例工作,而不是預期的方式。

因爲它可以插入記錄,但只有一個數字。我相信這是因爲FleetID和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:測試數據,2012/02:Moredata,2013/01:Extradata,2014

問題:我可以讓fleetID自行增加,而不是將`fleet`與其一起存儲嗎?如果是這樣,怎麼樣?

感謝

+0

您需要將您的FleetID,WashId和BranchID設置爲自動遞增主鍵並將其從插入中刪除。此外,我會建議你轉移到更現代的mysql庫(PDO或mysqli)並使用參數化查詢。 – Orangepill

+0

你介意給我一個例子嗎? – Bookmonkey

回答

1

您需要建立FleetID,WashID和BranchID的如自動遞增的ID,並從插件刪除它們,這會讓數據庫中設置了一個獨特的價值。

例如使用這種方法有效的表定義是

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) 
    ); 

然後,當你插入

$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']})."')"; 

你打算用這種方法來打的第一個問題是你不會在插入之後知道該ID是什麼。爲此,您需要使用mysql_insert_id(或者它與mysqli或pdo相同)。