使用PDO运行以下查询(实际上,我使用准备好的语句,但存在相同的问题)
INSERT INTO MyTable(MyField) VALUES('Row1'), ('Row2')
如何获得有关Row1
和的记录的ID Row2
?
$db->lastInsertId()
从字面上返回最后一个ID。
采取这个最后的ID,减去记录数并假定范围覆盖了我的所有记录,是否足够?会有差距/跳跃。是否保证此查询是原子查询?
如果您使用的是MyISAM表,则由于表级别的锁定机制,您只能获得一定范围的ID。
阅读http://dev.mysql.com/doc/refman/5.5/en/innodb-auto-increment-
handling.html#innodb-auto-increment-
traditional后,
假设您使用的是“传统”
innodb锁定(可能您是的),那么对于单个语句而言,ID的集合将是连续的。
问题内容: 我正在掌握PDO的基础知识。 但是我试图获取插入的行的ID,我使用: 我遇到的教程都是关于交易的,但是我没有使用交易! 问题答案: 您可能正在寻找lastInsertId。“返回最后插入的行或序列值的ID”。
问题内容: 我有一个查询,我想插入最后一个ID。字段ID是主键,并且是自动递增的。 我知道我必须使用以下语句: 该语句适用于如下查询: 但是,如果我想使用以下语句获取ID: 我收到此错误: 我究竟做错了什么? 问题答案: 那是因为那是SQL函数,而不是PHP。您可以使用。 喜欢: 如果要使用SQL而不是PDO API进行操作,则可以像普通的select查询一样进行操作:
问题内容: 我正在使用PHP中的mvc结构,我想检索最后插入的行ID。 我创建了以下sql代码: 但不幸的是我遇到了这个错误: 我也尝试过此堆栈链接,但不适用于我,因此如果您能帮助我获取ID,我将非常高兴。 我也在这里共享我的controller.php文件。 问题答案: 你快到了。 如果您查看lastInsertId的手册页,则会在数据库句柄上调用它- 您当前正在语句中对其进行调用。 您只需要致
问题内容: 我正在将PHP PDO与PostgreSQL一起用于新项目。 给定以下功能,如何返回刚刚插入的行的ID?它不像现在那样工作。 问题答案: 从手册: 根据基础驱动程序,返回最后插入的行的ID或序列对象的最后一个值。例如,PDO_PGSQL()要求您为name参数指定序列对象的名称。 应该是这样的: [编辑]更新文档链接
问题内容: 这个问题已经在这里有了答案 : 使用PDO插入多行 (1个答案) 4年前关闭。 我有数据库表:和 当前,唯一要插入类别表的函数与此类似: 我有一种形式来输入标题和插入URL图像的可能性。 通过单击提交标题,我要转到类别表,到目前为止,图像应该转到表图像,每个图像都有一个ID,但内部连接到该类别的ID。 桌子: 我无法正确执行此操作 我想要的结果示例: html表格 提交后 表类别: 表
问题内容: 您好,我正在制作一个在pdo中进行多次插入的类。 是这样的 搜索后,我发现我必须建立类似 然后用这个执行 ,其中是 问题是我还得到一个错误就如何解决呢? 这是我正在做的一小段。 问题答案: 避免并发症的简单方法是这样的 但是,这将多次执行该语句。因此,最好创建一个较长的单个查询来执行此操作。 这是我们如何执行此操作的示例。