我有一些PHP代码将数据插入从html表单收集的表中,它会在成功提交查询时自动分配一个唯一的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>";
}
答案 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。