首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在id_column中添加自动生成的字母数字密钥

如何在id_column中添加自动生成的字母数字密钥
EN

Stack Overflow用户
提问于 2019-06-24 07:59:48
回答 1查看 338关注 0票数 1

所发生的是一个用户来现场,填写创建一个新的产品形式与标题,描述,价格等领域。

我想在默认设置为auto_increment的'id‘列中存储一个唯一生成的字母数字键,使用该唯一键作为我的product_id。就像每个Youtube视频都有自己生成的唯一键,而不是像'1‘、'2’、‘3’这样的id .

我正在使用"uniqid();" 函数生成密钥。

如果我做错了,请告诉我,或者有更好的方法来做。我是个十足的新手。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-24 08:08:08

以下两件事不可能同时发生:

  • 唯一生成字母数字密钥
  • ‘'id’列,默认设置为auto_increment

您不能有字母数字键,即auto_increment,因为根据定义,字母数字意味着用字母和数字创建的字符串,而不能自动增加字母表,有意义吗?

因此,我的建议是,将"id“键数字保留为1、2、3等,并在表中再创建一列,将其命名为"unique_id”。你当然可以随便给它取名字。它需要VARCHAR(255)类型。

然后使用以下函数填充该列:

代码语言:javascript
复制
$bytes = 12;
$uniqueId = bin2hex(openssl_random_pseudo_bytes($bytes)); //this will create 24 char alphanumeric string, you can increase or decrease it by changing the $bytes

然后把这个$uniqueId放进你的专栏,瞧,你有你唯一的实体id。

更新

为了在url中显示字母数字唯一的id,您需要将url结构从/localhost/product/product_id更改为/localhost/product/product_unique_id,我假设您的产品在某个地方列出了某种超链接,单击哪个用户进入产品详细信息页面,对吗?

假设您有一个具有id 1和唯一id lt4Zhr7的产品,那么简单地列出产品,您就会给出产品的唯一id,如下所示:

代码语言:javascript
复制
<a href="/localhost/product/lt4Zhr7"> Product 1 </a>

这是一个基本的解决方案,它应该引导您朝着正确的方向前进,您的实际代码可能会根据您正在使用的框架或其他一些因素而有所不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56732206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档