问题标签 [insert-id]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4151 浏览

php - 我如何处理 mysql 表中的并发插入并获取正确的插入 ID

我正在为 PHP 库使用 adodb。

为了获取插入记录的 id,我使用这个函数

p>

我想知道数据库表中是否有多个同时插入,此方法是否会为插入的每条记录返回正确的插入 ID?

我问这个的原因是因为我使用最后一个插入 ID 来进一步处理其他记录并在相关表中创建后续条目。

这种方法是否足够安全,或者我错过了什么。

请帮助我为此制定适当的工作计划,以便我可以使用最后一个插入 ID 安全地进一步插入另一个表,而不必弄乱现有数据。

谢谢

0 投票
1 回答
1369 浏览

php - PHP MySQLi 和 MySQLi_STMT:使用哪个 insert_id?

MySQLi 和 MySQLi_STMT 类都有一个 $insert_id 属性。

如果我使用 MySQLi 对象(例如 $db)连接到我的数据库,然后使用 MySQLi_STMT 对象(例如 $stmt)执行 INSERT,以获取最后一个 INSERT 的 id,我应该使用:

或者

或者它们是否相同,在这种情况下没关系?

我认为这对某人来说可能是一个快速的答案,并且可以节省我编写测试代码来检查它的时间。

一如既往地提前感谢。

0 投票
2 回答
4943 浏览

core-data - 按插入顺序检索核心数据实体

我可以在 NSSortDescriptor 中使用内部 ID 变量或时间戳来按插入顺序检索核心数据实体吗?

如果有更清洁的方法,我宁愿不必创建这样的属性,但如果没有其他选择,显然会这样做。

0 投票
6 回答
41373 浏览

php - 将日期和时间插入Mysql

我正在尝试将日期和时间插入 mysql 日期时间字段。当用户选择日期和时间时,它将生成两个 POST 变量。我已经搜索了互联网,但仍然不知道该怎么做。

我的代码。

如果我将 $datetime 插入 mysql,日期似乎是 0000-00-00:00:00:00

如果有人可以帮助我,我将不胜感激。谢谢。

0 投票
1 回答
2682 浏览

kohana - Kohana 3 中的 insert_id

我将 Kohana 3 框架与 Mysql 存储过程一起使用。如何获取最后插入记录的 id?这是代码:

文档说,query() 方法在执行插入查询时返回一个数组,其中包含最后一个插入 id 和受影响的行号。当我调用: print_r($result) 我得到: Array ( [0] => 0 [1] => 1 ) insert_id 键为 0,尽管我在数据库中有很多记录。我做错了什么?

0 投票
1 回答
1158 浏览

mysqli - insert_id mysqli

我正在尝试从 mysql INSERT 查询返回插入的 id。每次我运行该函数时,我都会得到 0 作为结果。有人可以解释一下我可以在什么时候检索该值,因为虽然下面的脚本执行我无法收回插入的 id。大概做了什么傻事吧。

0 投票
1 回答
1005 浏览

mysql - MySQL PhpMyAdmin:更改 AUTO_INCREMENT 和/或 INSERT_ID

我有一个 invoices 表,它为每张发票存储一条记录,其中 id 列 ( int AUTO_INCREMENT) 是主键,但也是发票参考号。

现在,不幸的是,我不得不手动迁移在旧系统上生成的一些发票,这些发票具有五位数的 ID,而不是当前系统使用的四位数。

但是,即使我将AUTO_INCREMENT通过 PhpMyAdmin(表操作)重置为下一个四位数的 id,它仍然会插入一个五位数的 1,即当前表中较高的 id 加一。

通过四处搜索,似乎我实际上需要更改insert_id以及AUTO_INCREMENT? 我尝试过执行ALTER TABLE invoices SET insert_id=8125ALTER TABLE invoices insert_id=8125但这些命令似乎都不是有效的。

谁能解释我可以重置的正确方法,AUTO_INCREMENT以便它将插入带有 id 的记录8125,然后当它到达时,10962它将跳过我手动添加的四个记录,并从头10966开始继续顺序 id。如果它不会跳过10962-10966那么这并不重要,因为公司每年不会产生那么多发票,所以这将在接下来的一年发生,因此希望不会造成问题。

对于我发现自己所处的这种棘手情况,我非常感谢任何帮助!非常感谢

0 投票
1 回答
708 浏览

php - mysqli multi_query 和 insert_id 让我的命令不同步;

我知道有人问过类似的问题,我已经尝试了很多(包括 php 文档),但我似乎没有让它工作。

我有以下内容:

如果我执行上面的代码,无论我接下来尝试在数据库上做什么,我都会收到“命令不同步;您现在无法运行此命令”错误。

我知道我必须关闭所有结果,问题是我不知道如何。

似乎有结果,因为$mysqli->more_results()返回 true 但是如果我然后调用 use_result() 或 store_result() 这些返回 null。我在调用 next_result() 之前和之后都尝试过这样做,它总是为空:

或者

请帮助,在执行 multi_query 插入和调用 insert_id 之后如何摆脱“命令不同步;您现在无法运行此命令”。谢谢。

0 投票
2 回答
185 浏览

php - PHP – 从扩展插入中检索自动递增的值

我目前正在使用$mysqli->insert_id在插入新行时从 MySQL 表中检索自动分配的主键。这适用于单个插入。这是一个简单的案例

但是,我(实际上是从这个站点)了解到,使用扩展插入可以更好地完成多个插入:

这也很有效——除非我想知道哪些键是自动分配的。

PHP手册说:

在具有 AUTO_INCREMENT 字段的表上运行扩展插入时,mysqli_insert_id() 的值将等于插入的第一 行的值。

我的测试似乎证实了这一点。

注意:我不想要第一个或最后一个。

我不想为了获得单独的 auto_allocated 键而不得不恢复到数千个单次插入。

有谁知道一种方法来进行扩展插入并取回所有分配的键(大概在一个数组中)?

我确实想到在进行扩展写入之前只读取并保留最新的现有密钥,然后计算分配密钥的预期值,但这似乎有点夸张。

0 投票
0 回答
336 浏览

php - 使用 $insert_id 更新两个表 - codeigniter

有没有办法可以使用 insert_id 之类的东西更新表单输入?我有一个用于将工厂添加到表的表单,并且在提交后我也使用 insert_id 将工厂 id 存储在另一个表中。

这一切都很好,但是 $this->db->update 有这样的方法吗?

我的更新模型:

我的控制器更新功能:

为了添加工厂,我将它与 insert_id 一起使用:

控制器:

模型:

希望它足够清楚。