一旦指定,就从表中提取ID

时间:2016-06-12 00:58:45

标签: php mysql

我有一些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>";
                    }

1 个答案:

答案 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。