<?php
$con=mysqli_connect("localhost","root","","new");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"INSERT INTO new values('nameuser','2015-09-12')");
// Print auto-generated id
echo "New record has id: " . mysqli_insert_id($con);
mysqli_close($con);
?>
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
希望这对某人有所帮助 .
Edit: This is only the part where you define how to generate an automatic ID, to obtain it after created, the previous answers before are right.
// First, connect to your database with the usual info...
$db = new mysqli($hostname, $username, $password, $databaseName);
// Let's assume we have a table called 'people' which has a column
// called 'people_id' which is the PK and is auto-incremented...
$db->query("INSERT INTO people (people_name) VALUES ('Mr. X')");
// We've now entered in a new row, which has automatically been
// given a new people_id. We can get it simply with:
$lastInsertedPeopleId = $db->insert_id;
// OR
$lastInsertedPeopleId = mysqli_insert_id($db);
10 回答
一个例子 .
代码行
$course_id = $query_new->insert_id;
将显示最后插入的行的ID . 希望这可以帮助 .试试这样你就可以得到答案:
看看以下链接:
http://www.w3schools.com/php/func_mysqli_insert_id.asp
http://php.net/manual/en/function.mysql-insert-id.php
另请注意,此扩展在PHP 5.5中已弃用,在PHP 7.0中已删除
MySQL函数LAST_INSERT_ID()正是您需要的:它检索在此会话期间插入的id . 因此,使用它是安全的,即使有其他进程(例如,其他人调用完全相同的脚本)将值插入到同一个表中 .
PHP函数mysql_insert_id()与使用
mysql_query()
调用SELECT LAST_INSERT_ID()
相同 .另一个可能的答案是:
定义表时,它将包含列和数据 . 列id可以具有属性 AUTO_INCREMENT .
通过这种方法,你不必担心 id ,它' ll be made automatically .
例如(摘自w3schools)
希望这对某人有所帮助 .
Edit: This is only the part where you define how to generate an automatic ID, to obtain it after created, the previous answers before are right.
正如@NaturalBornCamper所说,mysql_insert_id is now deprecated并不应该使用 . 选项现在使用PDO或mysqli . NaturalBornCamper在他的回答中解释了PDO,所以我将使用mysqli_insert_id展示如何使用 MySQLi (MySQL Improved) .
查看PHP文档以获取更多示例:http://php.net/manual/en/mysqli.insert-id.php
见mysqli_insert_id() .
无论你做什么,不要插入然后再做“
SELECT MAX(id) FROM mytable
” . 就像你说的那样,它没有必要 .mysqli_insert_id()
已经具备此功能 .至于PHP的网站,mysql_insert_id现已弃用,我们必须使用PDO . 要使用PDO执行此操作,请执行以下操作:
我在上面的链接中找到了答案http://php.net/manual/en/function.mysql-insert-id.php
答案是:
我只想添加一个关于
lastInsertId()
的小细节;When entering more than one row at the time, it does not return the last Id ,但是最后一次插入的集合的第一个Id .
请考虑以下示例
这里发生的是我推入两个新行
my_table
. 表的id是自动递增的 . 在这里,对于同一个用户,我添加了两行不同的varNumb
.末尾的回显值将等于
varNumb=1
行的id,这意味着不是最后一行的id,而是最后一个请求中添加的第一行的id .试试这个......它对我有用!