0

我想将数据插入到带有我网站订单的 mysql 数据库中。

所以我将用户名和一个自动递增的订单号存储在数据库中。

问题是,我如何再次提取订单号。

我试过这个:

SELECT ordernumber FROM transactions WHERE.....

如何完成这个?

4

9 回答 9

1

您可以使用

SELECT LAST_INSERT_ID();

有关http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_last-insert-id的更多信息

请注意,在执行 SELECT 或 SET 等其他 SQL 语句后,您不能使用 C API 函数来检索 LAST_INSERT_ID(expr) 的值。因此,当您执行 INSERT 语句时,然后您执行

SELECT LAST_INSERT_ID();

它可以工作,但是当中间有其他语句时,它将返回 0,获得它的唯一方法如下所述。

另一种选择是对表格进行 DESC 排序并获取第一个数字

SELECT ordernumber FROM transactions ORDER By ordernumber DESC LIMIT 1;
于 2013-04-17T09:53:24.080 回答
0

Another way is to run a query

select max(ordernumber) as lastordernumber from transactions;

here, lastordernumber is the desired value.

于 2013-04-17T10:00:18.663 回答
0
$lastOrderNumber = mysql_insert_id();
$sql = "SELECT ordernumber FROM transactions WHERE ordernumber = $lastOrderNumber;";
于 2013-04-17T09:51:13.250 回答
0

如其他答案所述,您应该使用 mysql_insert_id。

例如你可以使用这个:

$sql = "INSERT INTO table VALUES ('username')";
$result = mysql_query($sql);
echo "ID of last inserted record is: " . mysql_insert_id();

以上将输出:

ID of last inserted record is: (The ordernumber here)

有关 mysql_insert_id 的更多信息,您可以查看此处。

于 2013-04-17T09:55:35.610 回答
0

有一个函数可以知道当前连接中插入的最后一个 id 是什么

例如,在 inster 数据之后,您可以得到如下

mysql_query('INSERT INTO transactions  VALUES(\'b\')');

$id = mysql_insert_id();
于 2013-04-17T09:55:40.877 回答
0

只需使用 mysql_insert_id 函数它会给你最后插入的 id。

于 2013-04-17T09:45:55.500 回答
0

在插入查询执行代码后调用 mysql_insert_id() 函数

于 2013-04-17T09:47:09.983 回答
0

这取决于您使用什么方法将数据插入数据库。

对于 mysql_* 函数,您可以使用 mysql_insert_id() 函数。

对于 PDO 使用和 mysqli_*,请参阅此答案:What is equivalent of mysql_insert_id(); 使用准备好的语句?

于 2013-04-17T09:47:54.420 回答
0

也可以使用 LAST_INSERT_ID() 或 mysql_insert_id

于 2013-04-17T09:48:23.727 回答