php手动增量成员编号

php手动增量成员编号,php,mysql,auto-increment,Php,Mysql,Auto Increment,我已经有数百人加入了我的网站,并为他们创建了一个会员id。我刚刚在数据库中创建了一个名为user\u no的新列 增加成员编号的mysql查询是什么 是否可以先从AE开始,然后再从编号(即:AE0001、AE0002等)开始。。。。它从4开始,不是AE1,AE2 mysql查询: UPDATE user SET user_no=..?? 在PHP方面,我如何增加它?如果有新成员加入 $db->query("INSERT INTO user (user_no) VALUES(AE'$u

我已经有数百人加入了我的网站,并为他们创建了一个会员id。我刚刚在数据库中创建了一个名为
user\u no
的新列

  • 增加成员编号的mysql查询是什么
  • 是否可以先从AE开始,然后再从编号(即:AE0001、AE0002等)开始。。。。它从4开始,不是AE1,AE2
mysql查询:

UPDATE user SET user_no=..??
在PHP方面,我如何增加它?如果有新成员加入

$db->query("INSERT INTO user (user_no) VALUES(AE'$user_no')");

为什么不使用自动递增字段并将AE附加到它?自动增量将由MySQL执行,因此您不必在PHP中担心它:

要以
AE0001
格式显示用户密钥,您可以执行以下操作

$id = 'AE' . str_pad($autoincrementid, 5, "0", STR_PAD_LEFT);

为什么不使用自动递增字段并将AE附加到该字段?自动增量将由MySQL执行,因此您不必在PHP中担心它:

要以
AE0001
格式显示用户密钥,您可以执行以下操作

$id = 'AE' . str_pad($autoincrementid, 5, "0", STR_PAD_LEFT);

我同意其他人的观点,他们认为您应该简单地使用MySQL自动增量功能。这就是它的目的

可以自己编写,可以使用MySQL的
MAX()
函数查找表中当前字段的最大值。但是,除非您使用的是一些非常健壮的事务性代码,否则当两个用户同时创建帐户时,这种方法总是会导致创建重复记录的危险

避免这种情况所需的代码量并不小,如果您缺乏足够的经验,看不到使用自动增量的好处,那么您就不可能正确使用它

Auto increment的全部要点是避免您每次都必须实现所有这些代码


此外,出于性能原因,强烈建议对主键使用整数值。当然,您可以将其显示为“AE”$id,但您应该将其作为一个整数存储在数据库中。

我同意其他人的说法,即您应该只使用MySQL自动增量功能。这就是它的目的

可以自己编写,可以使用MySQL的
MAX()
函数查找表中当前字段的最大值。但是,除非您使用的是一些非常健壮的事务性代码,否则当两个用户同时创建帐户时,这种方法总是会导致创建重复记录的危险

避免这种情况所需的代码量并不小,如果您缺乏足够的经验,看不到使用自动增量的好处,那么您就不可能正确使用它

Auto increment的全部要点是避免您每次都必须实现所有这些代码



此外,出于性能原因,强烈建议对主键使用整数值。当然,您可以将其显示为“AE”$id,但您应该将其作为整数存储在数据库中。

为什么不使用MySQL的自动增量功能呢?为什么要创建自己的计数器?如果可以在通过php输出成员id时将“AE”附加到数据库中的数字,那么为什么要将其附加到数据库中呢?背后的原因是什么?为什么不使用一个
auto_increment
ing主键列?你的意思是想给每个用户一个特定的id吗?@Michael:有可能从四个数字开始自动递增吗?ie:0001,0002?@boyee:那么为什么不使用这个号码/id作为你的会员号呢?你为什么不直接使用MySQL的自动增量功能呢?为什么要创建自己的计数器?如果可以在通过php输出成员id时将“AE”附加到数据库中的数字,那么为什么要将其附加到数据库中呢?背后的原因是什么?为什么不使用一个
auto_increment
ing主键列?你的意思是想给每个用户一个特定的id吗?@Michael:有可能从四个数字开始自动递增吗?ie:0001,0002?@boyee:那为什么不把那个号码/id用作你的会员号码呢?@Spudley:谢谢:)我同意了!我刚刚得到了另一个uniq id,用于不同的目的。@boyee007——你想让
用户号与记录的主id相同,前面有“AE”,还是将是一个完全独立的序列?@Spudley:是的,它们应该是相同的id!区别在于:它以“AE”和4个数字开头。好。。可以在php端附加AE,或者哪种方式最好。有什么好的解决办法吗?我犯了@Spudley所指的错误,我可以告诉你这不好玩@boyee-是的,正如您所说,使用PHP追加;我建议遵循@JohnP的解决方案。@Spudley:谢谢:)我同意了!我刚刚得到了另一个uniq id,用于不同的目的。@boyee007——你想让
用户号与记录的主id相同,前面有“AE”,还是将是一个完全独立的序列?@Spudley:是的,它们应该是相同的id!区别在于:它以“AE”和4个数字开头。好。。可以在php端附加AE,或者哪种方式最好。有什么好的解决办法吗?我犯了@Spudley所指的错误,我可以告诉你这不好玩@boyee-是的,正如您所说,使用PHP追加;我建议遵循@JohnP的解决方案。如果OP希望
user\u no
字段与主键ID的值相同,那么这可能是正确的解决方案。您还可以使用
sprintf()
格式化字符串。但是要小心填充得太短——使用上面描述的格式,只有10000个用户之后,空间就会用完。听起来好像很多,但如果你的网站成功了,可能不会花很长时间,而且以后修复起来可能会很痛苦。@Spudley,当然。我只将其填充为5,因为OP提到了
AE0001
。如果OP希望
user\u no
字段与主键ID的值相同,那么这可能是正确的解决方案。您还可以使用
sprintf()
格式化字符串。