【发布时间】:2023-04-06 00:32:02
【问题描述】:
我想知道是否可以读取设置为将要插入的行的自动递增的列的值?我计划将行的order_id 列(自动递增主键)编码为transaction_id,这将是一个公开可见的ID。
因此,客户端不会搜索 http://website.com/order.php?order_id=3,而是会读取类似 http://website.com/order.php?transaction_id=188117104 的内容。
以下是我将如何将order_id 散列到可公开查看的transaction_id。
base_convert( hash( "adler32", $string ), 36, 10 )
有没有一种方法可以获得order_id 列,以便在执行查询以将记录插入数据库之前将其修改为transaction_id 列?
谢谢。
编辑 1:
使用 mysql_last_id 是否可以在单个查询中执行此操作?
<?php
// Insert records for product_orders
mysql_query('
INSERT INTO ' . DB_PFIX . 'product_orders (
order_transaction_id
) VALUES (
"' . base_convert( hash( "adler32", "LAST_INSERT_ID" + 1 ), 36, 10 ) . '"
), (
"' . base_convert( hash( "adler32", "LAST_INSERT_ID" + 1 ), 36, 10 ) . '"
), (
"' . base_convert( hash( "adler32", "LAST_INSERT_ID" + 1 ), 36, 10 ) . '"
), (
"' . base_convert( hash( "adler32", "LAST_INSERT_ID" + 1 ), 36, 10 ) . '"
), (
"' . base_convert( hash( "adler32", "LAST_INSERT_ID" + 1 ), 36, 10 ) . '"
)
') or die (
mysql_error()
);
?>
【问题讨论】: