使用左边填充PHP MYSQL获取lastInsertId

时间:2015-06-13 18:20:59

标签: php mysql pdo mysqli phpmyadmin

我希望将lastInsertId()方法输出第2行作为000002。我该怎么办?如果是select语句,我可以使用LPAD()获取它。但在这种情况下它是如何完成的?

2 个答案:

答案 0 :(得分:0)

如果您仍处于执行INSERT语句的同一MySQL会话中,则可以使用以下表达式计算格式化的最后插入ID:

LPAD(LAST_INSERT_ID(), GREATEST(6, LENGTH(LAST_INSERT_ID())), '0')

这将返回带有前导零的id值,默认情况下总计为6位。它还会考虑id值是否超过6位数(这是GREATEST(...)的作用)。

您可以使用该表达式选择格式化的最后一个id,将其分配给MySQL变量:

SELECT LPAD(LAST_INSERT_ID(), GREATEST(6, LENGTH(LAST_INSERT_ID())), '0');
SET @myId = LPAD(LAST_INSERT_ID(), GREATEST(6, LENGTH(LAST_INSERT_ID())), '0');

您也可以在其他语句中使用它,但请注意LAST_INSERTED_ID()语句后INSERT会发生变化。

你也可以使用PHP中从MySQL返回的最后一个插入的id并在那里格式化:

$formattedId = sprintf('%06d', lastInsertId());

默认情况下,sprintf会将ID扩展为6位,但也可以使用更长的ID。

答案 1 :(得分:-1)

如果你想从mysql查询中获取它,你可以参考以下语句:

SELECT
    LPAD(columnname, length(columnname),'00000')
FROM
    TABLENAME
ORDER BY 
    COLUMNNAME DESC LIMIT 1