我相对较新的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`存放在它旁边吗?如果是这样,怎么样?
由于
答案 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)。