如何获取我刚插入php/mysql的行的ID [英] How to get the id of a row i've just inserted php/mysql

查看:32
本文介绍了如何获取我刚插入php/mysql的行的ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:
PHP:如何获取表的最后插入ID?

Possible Duplicate:
PHP: how to get last inserted ID of a table?

我正在编写一个向数据库添加数据的函数,但随后我想立即在我的代码中使用该条目.

I'm writing a function to add data do a database, but I then want to immediately use that entry in my code.

我知道我可以查询:从表ORDER BY ID DESC中选择SELECT

I know I could query: SELECT id FROM table ORDER BY id DESC

但是我想知道是否还有其他更直接的方法.

But I wonder if there's any more direct way of doing it.

推荐答案

这主要取决于您用来访问MySQL的接口.

That mostly depends on the interface you're using to access MySQL.

如果您使用的是PDO(推荐),请使用PDO::lastInsertId():

If you're using PDO (recommended), you'd use PDO::lastInsertId(): http://us.php.net/manual/en/pdo.lastinsertid.php

如果您使用的是MySQL,则可以使用mysql_insert_id() http://php.net/manual/zh-CN/function.mysql-insert-id.php

If you're using MySQL, you'd use mysql_insert_id() http://php.net/manual/en/function.mysql-insert-id.php

如果您使用的是MySQLi,请使用mysqli_insert_id(): http://us.php.net/manual/zh/mysqli.insert-id.php

If you're using MySQLi, you'd use mysqli_insert_id(): http://us.php.net/manual/en/mysqli.insert-id.php

只需在插入完成后立即调用适当的函数即可.

Just simply call whichever function is appropriate right after your INSERT completes.

请务必注意,您可能不想使用SELECT从数据库中获取ID,因为如果您有多个编写者,则可能会获得插入其他线程的ID.最好情况下,您将使用错误的数据,而最坏情况下,则可能会遇到严重的安全问题和/或损坏.

It's important to note that you likely do not want to fetch id out of the database using SELECT because if you have multiple writers, you may get the id that some other thread inserted. At best, you'll operate on the wrong data, and at worst, you could have serious security issues and/or corruption.

这篇关于如何获取我刚插入php/mysql的行的ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆