问题标签 [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.
php - 我如何处理 mysql 表中的并发插入并获取正确的插入 ID
我正在为 PHP 库使用 adodb。
为了获取插入记录的 id,我使用这个函数
p>我想知道数据库表中是否有多个同时插入,此方法是否会为插入的每条记录返回正确的插入 ID?
我问这个的原因是因为我使用最后一个插入 ID 来进一步处理其他记录并在相关表中创建后续条目。
这种方法是否足够安全,或者我错过了什么。
请帮助我为此制定适当的工作计划,以便我可以使用最后一个插入 ID 安全地进一步插入另一个表,而不必弄乱现有数据。
谢谢
php - PHP MySQLi 和 MySQLi_STMT:使用哪个 insert_id?
MySQLi 和 MySQLi_STMT 类都有一个 $insert_id 属性。
如果我使用 MySQLi 对象(例如 $db)连接到我的数据库,然后使用 MySQLi_STMT 对象(例如 $stmt)执行 INSERT,以获取最后一个 INSERT 的 id,我应该使用:
或者
或者它们是否相同,在这种情况下没关系?
我认为这对某人来说可能是一个快速的答案,并且可以节省我编写测试代码来检查它的时间。
一如既往地提前感谢。
core-data - 按插入顺序检索核心数据实体
我可以在 NSSortDescriptor 中使用内部 ID 变量或时间戳来按插入顺序检索核心数据实体吗?
如果有更清洁的方法,我宁愿不必创建这样的属性,但如果没有其他选择,显然会这样做。
php - 将日期和时间插入Mysql
我正在尝试将日期和时间插入 mysql 日期时间字段。当用户选择日期和时间时,它将生成两个 POST 变量。我已经搜索了互联网,但仍然不知道该怎么做。
我的代码。
如果我将 $datetime 插入 mysql,日期似乎是 0000-00-00:00:00:00
如果有人可以帮助我,我将不胜感激。谢谢。
kohana - Kohana 3 中的 insert_id
我将 Kohana 3 框架与 Mysql 存储过程一起使用。如何获取最后插入记录的 id?这是代码:
文档说,query() 方法在执行插入查询时返回一个数组,其中包含最后一个插入 id 和受影响的行号。当我调用: print_r($result) 我得到: Array ( [0] => 0 [1] => 1 ) insert_id 键为 0,尽管我在数据库中有很多记录。我做错了什么?
mysqli - insert_id mysqli
我正在尝试从 mysql INSERT 查询返回插入的 id。每次我运行该函数时,我都会得到 0 作为结果。有人可以解释一下我可以在什么时候检索该值,因为虽然下面的脚本执行我无法收回插入的 id。大概做了什么傻事吧。
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=8125
,ALTER TABLE invoices insert_id=8125
但这些命令似乎都不是有效的。
谁能解释我可以重置的正确方法,AUTO_INCREMENT
以便它将插入带有 id 的记录8125
,然后当它到达时,10962
它将跳过我手动添加的四个记录,并从头10966
开始继续顺序 id。如果它不会跳过10962
-10966
那么这并不重要,因为公司每年不会产生那么多发票,所以这将在接下来的一年发生,因此希望不会造成问题。
对于我发现自己所处的这种棘手情况,我非常感谢任何帮助!非常感谢
php - mysqli multi_query 和 insert_id 让我的命令不同步;
我知道有人问过类似的问题,我已经尝试了很多(包括 php 文档),但我似乎没有让它工作。
我有以下内容:
如果我执行上面的代码,无论我接下来尝试在数据库上做什么,我都会收到“命令不同步;您现在无法运行此命令”错误。
我知道我必须关闭所有结果,问题是我不知道如何。
似乎有结果,因为$mysqli->more_results()
返回 true 但是如果我然后调用 use_result() 或 store_result() 这些返回 null。我在调用 next_result() 之前和之后都尝试过这样做,它总是为空:
或者
请帮助,在执行 multi_query 插入和调用 insert_id 之后如何摆脱“命令不同步;您现在无法运行此命令”。谢谢。
php - PHP – 从扩展插入中检索自动递增的值
我目前正在使用$mysqli->insert_id
在插入新行时从 MySQL 表中检索自动分配的主键。这适用于单个插入。这是一个简单的案例
但是,我(实际上是从这个站点)了解到,使用扩展插入可以更好地完成多个插入:
这也很有效——除非我想知道哪些键是自动分配的。
PHP手册说:
在具有 AUTO_INCREMENT 字段的表上运行扩展插入时,mysqli_insert_id() 的值将等于插入的第一 行的值。
我的测试似乎证实了这一点。
注意:我不想要第一个或最后一个。
我不想为了获得单独的 auto_allocated 键而不得不恢复到数千个单次插入。
有谁知道一种方法来进行扩展插入并取回所有分配的键(大概在一个数组中)?
我确实想到在进行扩展写入之前只读取并保留最新的现有密钥,然后计算分配密钥的预期值,但这似乎有点夸张。
php - 使用 $insert_id 更新两个表 - codeigniter
有没有办法可以使用 insert_id 之类的东西更新表单输入?我有一个用于将工厂添加到表的表单,并且在提交后我也使用 insert_id 将工厂 id 存储在另一个表中。
这一切都很好,但是 $this->db->update 有这样的方法吗?
我的更新模型:
我的控制器更新功能:
为了添加工厂,我将它与 insert_id 一起使用:
控制器:
模型:
希望它足够清楚。