【发布时间】:2015-05-26 04:30:10
【问题描述】:
我想在我的数据库中存储记录,并将这些值作为它们的 reference_id
CD000001
CD000002
CD000003
CD000004
etc
在我保存一条记录之前,我想检查最后一条记录的 reference_id,然后为下一条记录添加一个。例如,下一条记录应该是CD000005
我可以获取最后一条记录,做一个substr($var, 2); 以摆脱CD部分,以便我可以进行计算。但是我得到的是CD5。我不想手动注入那些00000,因为当我达到记录 10 时,就会出现危机。我会得到CD0000010 而不是CD000010.
请帮忙。
【问题讨论】:
-
你有没有试过看看如果你这样做
$myVar = 'CD000001; $myVar++; echo $myVar;会发生什么? -
但是依靠 PHP 递增一个值来避免数据库记录中的重复是不好或有效的
-
我的建议是取下 CD 并将其存储在 $variable 中并让数字发挥作用,但是当您出于显示目的调用它时,您可以简单地将其与 reference_id 连接
-
我建议您将主键设置为常规自增整数;如果您手动输入,则为您的企业 ID 设置一个单独的字段,或者如果您知道您的企业 ID 将始终为“CD”+ 填充的数据库 ID,则只需以上述方式对其进行格式化以输出。另外,不要“注入”
00000,使用正确的格式:sprintf("CD%06d", 10);给出正确的"CD000010",没有危机。 -
特别是如果您正在编写一个 Web 应用程序(并且由于您使用的是 PHP,那么您很有可能是),您真的不想自己增加您的 ID,因为您可以进入竞争条件,这将使您的两个对象具有相同的 ID;数据库中的 autoincrement 字段正是它的正确对策,您不应该发明自己的自制解决方案。