当我插入一行时,表格的“ id”字段会自动增加。我想插入一行,然后获取该ID。
我会按照我说的去做,但是有没有办法我不用担心插入行和获取ID之间的时间呢?
我知道我可以在数据库中查询与输入的信息相匹配的行,但是变化很大,将有重复项,唯一的区别是id。
$link = mysqli_connect('127.0.0.1', 'my_user', 'my_pass', 'my_db');
mysqli_query($link, "INSERT INTO mytable (1, 2, 3, 'blah')");
$id = mysqli_insert_id($link);
请参阅mysqli_insert_id()
。
无论您做什么,都不要插入“ SELECT MAX(id) FROM mytable
”。就像您说的那样,这是比赛条件,没有必要。mysqli_insert_id()
已经具有此功能。
问题内容: …并且该手册似乎表明您可以随时拨打电话,并且可以正常使用。但是这个… …似乎说明它必须在事务内。所以我的问题是:我可以在查询之前(只要没有交易)就等我想要的时间吗?面对许多并发连接,这可靠吗? 问题答案: PostgreSQL中的INSERT,UPDATE和DELETE具有RETURNING子句,这意味着您可以执行以下操作: 然后查询将为插入的每一行返回它为id插入的值。将往返保存到服
问题内容: 我有一个经常插入新数据的表。我需要获取表的最后一个ID。我怎样才能做到这一点? 类似于吗? 问题答案: 如果您使用的是PDO,请使用。 如果您使用的是Mysqli,请使用。 如果您仍在使用Mysql: 请不要在新代码中使用函数。它们不再维护,已正式弃用。看到 红色框了 吗?了解 准备的语句 来代替,并使用 PDO 或库MySQLi -本文将帮助你决定哪些。如果您选择PDO,这是一个很好
问题内容: 我正在使用Python 在mysql中运行查询 运行查询后,我想知道该行的主键。我知道有查询 但是我不确定它是否可以与插入忽略一起使用 做这个的最好方式是什么? 问题答案: 文档的说: 如果使用INSERT IGNORE并且忽略该行,则AUTO_INCREMENT计数器不会增加,并且LAST_INSERT_ID()返回0,这表明没有插入行。 知道了这一点,您可以将其分为多个步骤: 插入
问题内容: 我有一个表字段类型varchar(36),我想由mysql动态生成它,所以我使用了以下代码: 插入记录后如何立即检索生成的uuid? 问题答案: 更好 你不能。唯一的解决方案是执行2个独立的查询: 其中$ uuid是第一步中获取的值。
我有一个MySQL数据表,详细信息如下: 它正在工作,只是我正在尝试在插入数据后从数据库中获取id号。我该怎么做?
问题内容: 我正在掌握PDO的基础知识。 但是我试图获取插入的行的ID,我使用: 我遇到的教程都是关于交易的,但是我没有使用交易! 问题答案: 您可能正在寻找lastInsertId。“返回最后插入的行或序列值的ID”。