ID增量0001 + 1显示2

时间:2016-12-07 11:33:39

标签: php mysql

我有一个标识为00010002等的简单数据库。 我必须得到我的最后一个ID并在最后加1。

我将其保存到$_SESSION['part_number'] = $part_number + 1; 如果ID为0001,我不知道为什么会得到2个结果。 如果ID为0010等,则相同,我希望它始终为LAST ID + 1,前面为00。

3 个答案:

答案 0 :(得分:0)

尝试使用以下

$part_number = (int)$part_number;
$part_number++
$_SESSION['part_number'] = str_pad($part_number, 4, '0', STR_PAD_LEFT);

答案 1 :(得分:0)

PHP是一种动态类型语言。为了避免奇怪的转换,不要使用前导零,特别是对于数据库,你只是让你的生活更难。 (AUTO_INCREMENT字段为您完成所有工作,如果您确实需要,可以在MySQL端添加前导零。如果使用PHP,也可能存在以0开头的数字被解释为八进制(基数为8)的问题。

在SQL端执行所有这些操作,

只需将ID字段更改为AUTO_INCREMENT,然后使用MySQL函数LPAD()检索前导零的数据。

SELECT LPAD(id, 4, '0') AS id FROM your_table_name WHERE ...

答案 2 :(得分:-1)

使用STR_PAD_LEFT

echo str_pad( $_SESSION['part_number'], 4, "0", STR_PAD_LEFT ); //0002 

OR

echo str_pad( $part_number+1, 4, "0", STR_PAD_LEFT ); //0002