我想将数据插入到带有我网站订单的 mysql 数据库中。
所以我将用户名和一个自动递增的订单号存储在数据库中。
问题是,我如何再次提取订单号。
我试过这个:
SELECT ordernumber FROM transactions WHERE.....
如何完成这个?
我想将数据插入到带有我网站订单的 mysql 数据库中。
所以我将用户名和一个自动递增的订单号存储在数据库中。
问题是,我如何再次提取订单号。
我试过这个:
SELECT ordernumber FROM transactions WHERE.....
如何完成这个?
您可以使用
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;
Another way is to run a query
select max(ordernumber) as lastordernumber from transactions;
here, lastordernumber is the desired value.
$lastOrderNumber = mysql_insert_id();
$sql = "SELECT ordernumber FROM transactions WHERE ordernumber = $lastOrderNumber;";
如其他答案所述,您应该使用 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 的更多信息,您可以查看此处。
有一个函数可以知道当前连接中插入的最后一个 id 是什么
例如,在 inster 数据之后,您可以得到如下
mysql_query('INSERT INTO transactions VALUES(\'b\')');
$id = mysql_insert_id();
只需使用 mysql_insert_id 函数它会给你最后插入的 id。
在插入查询执行代码后调用 mysql_insert_id() 函数
这取决于您使用什么方法将数据插入数据库。
对于 mysql_* 函数,您可以使用 mysql_insert_id() 函数。
对于 PDO 使用和 mysqli_*,请参阅此答案:What is equivalent of mysql_insert_id(); 使用准备好的语句?
也可以使用 LAST_INSERT_ID() 或 mysql_insert_id