我有一个标识为0001
,0002
等的简单数据库。
我必须得到我的最后一个ID并在最后加1。
我将其保存到$_SESSION['part_number'] = $part_number + 1;
如果ID为0001
,我不知道为什么会得到2个结果。
如果ID为0010
等,则相同,我希望它始终为LAST ID + 1,前面为00。
答案 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