我有具有IDS 0001
,0002
等的简单数据库。我必须获得我的最后一个ID并在末尾加1个。
我将其保存到$_SESSION['part_number'] = $part_number + 1;
我不知道如果ID为0001
,为什么我会得到2个结果。同样,如果ID是0010
等,我想让它始终在前面使用ID 1。
尝试使用以下
$part_number = (int)$part_number;
$part_number++
$_SESSION['part_number'] = str_pad($part_number, 4, '0', STR_PAD_LEFT);
PHP是一种动态键入的语言。为了避免奇怪的转换,永远不要使用领先的零,尤其是对于数据库,您只会使自己的生活更加艰难。(AUTO_INCREMENT
字段为您完成所有工作,如果您确实需要,可以在MySQL侧添加领先的零)。也可能存在一个问题,即以0
开头的数字被解释为八进制(基本8)数字,如果您使用了php。
在SQL侧进行所有操作,
只需将ID字段更改为AUTO_INCREMENT
,然后使用MySQL函数LPAD()
用领先的零来检索数据。
SELECT LPAD(id, 4, '0') AS id FROM your_table_name WHERE ...
使用STR_PAD_LEFT
echo str_pad( $_SESSION['part_number'], 4, "0", STR_PAD_LEFT ); //0002
或
echo str_pad( $part_number+1, 4, "0", STR_PAD_LEFT ); //0002