我想在php中创建一个唯一的客户ID

时间:2013-12-19 09:55:16

标签: php mysql sql unique

大家好我想创建一个带有前缀的唯一ID,然后想要在数据库中输入它,客户ID字段需要是主要的,因为我尝试了很多东西但是都失败了,因为mysql不让我这样做现场小学, 我试图像这样创建客户ID $pre="brbn_"; $v=0001; id=$pre.$v;

这里的mysql查询来自此查询。

1 个答案:

答案 0 :(得分:0)

您可以在数据库中的唯一字段中使用字符串,但不能将其用作主数据库,因为您的ID不是数字。 mysql使用primary来自动增量或类似的东西。 您可以创建主要ID和唯一用户ID并将其存储在数据库中。

CREATE TABLE IF NOT EXISTS `test` (
           `id` int(11) NOT NULL,
           `uid` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`)
) 
ENGINE=MyISAM DEFAULT CHARSET=utf8;


INSERT INTO `test` (`id`, `uid`) VALUES (1, 'brbn_0001'),(2, 'brbn_0002');

当然你应该让字段ID自动增量:)

因为您已经创建了数据库并且只想增加$ v,所以必须先从db中选择

SELECT uid FROM test DESC LIMIT 1

这将返回最后一个条目...现在您可以使用php来剪切字符串。 尝试一下像

$var = explode("_",$result);
$ var [1]中的

值为1

现在递增$ var [1] ++;

现在你必须把号码带回4个号码

$var = str_pad($var[1], 4); 

您可以在两行中执行此操作,例如

$var = explode("_",$result);
$var = str_pad(++$var[1], 4);

而不是添加前缀并插入数据库