正确插入数据的问题

时间:2013-07-07 04:38:46

标签: php mysql

我相对较新的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自行增加,而不是将`fleet`存放在它旁边吗?如果是这样,怎么样?

由于

1 个答案:

答案 0 :(得分: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)。