2016-06-12 48 views
1

我有一些PHP代碼將數據插入到從html表單收集的表中,它在查詢成功提交時自動分配一個唯一的ID。儘快從表中提取ID

目前我生成一個引用,但這是一個糟糕的解決方案,因爲它將最終有長期重複的條目...我如何拉唯一ID並將其發佈到echo語句中,我將不得不運行另一個查詢來獲取它?或者可以在這一塊代碼中完成?

if($fnameErr === null) { 
        $ref = rand(1, 1000); 
         $query = "INSERT INTO Taxi(fname, lname, contact, unit, snumber, sname, suburb, dsuburb, dt, ref, status) VALUES('{$fname}','{$lname}','{$contact}','{$unit}','{$snumber}','{$sname}','{$suburb}','{$dsuburb}','{$dt}','{$ref}','{$status}')"; 
         if (mysqli_query($conn, $query)) { 

         $date = date_create($dt); 
         echo "Thank you! Your booking reference number is {$ref} you will be picked up in front of your provided address at " . date_format($date, 'g:ia \o\n l jS F Y') . "."; 

         }else{ 
          echo "<br>Failed<br>"; 
          echo mysqli_error($conn); 
         } 
        } 
        else { 
         echo "<br>Unable to add your booking.<br>"; 
        } 
+1

可能重複的[mysqli最後插入ID](http://stackoverflow.com/questions/19738283/mysqli-last-insert-id) – Dekel

+0

爲什麼你不只是自動增量,並使其獨特的表? –

回答

2

對於出租車的表,你需要創建一個唯一的ID作爲此表的主鍵:

ALTER TABLE `taxi` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`); 

當您插入某些條目,你不需要做一個新的ID由你自己,但它會自動完成。

所以插入查詢後,您可以通過獲取新的ID:

mysqli_query($conn,"INSERT INTO Taxi (fname, lname...) VALUES (..."); 

echo "New record has id: " . mysqli_insert_id($conn); 

而且你的最後一個條目的ID。