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 自行递增,而不将`fleet` 存储在它旁边?如果是这样,怎么办?

谢谢

4

1 回答 1

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

于 2013-07-07T05:01:25.427 回答