Codeigniter从数据库返回unsigned zerofill id

时间:2013-04-03 21:23:41

标签: php codeigniter

我使用此方法获取最后插入的ID:

$this->db->insert_id();

例如,数据库中插入的id是000055,但是这个函数只返回55,我怎样才能得到完整的无符号zerofill id?

2 个答案:

答案 0 :(得分:0)

假设您正在使用MySQL - $this->db->insert_id()方法使用mysql_insert_id函数 - 它返回一个整数。

因此,在不更改./system/database/drivers/mysql/mysql_driver.php文件的情况下,我认为没有办法。

答案 1 :(得分:0)

为什么你的ID被填零?如果返回1,这可能会导致问题,因为它会认为它是二进制数而不是零填充int。甚至有可能成为十六进制的难得机会。如果你只是希望你的ID为应用程序零填充,那么当你将它呈现给视图时,在库或帮助器中处理它,因为因为PHP是松散类型的,它可能会认为你正在进行一些比较或处理十六进制或二进制而不是一个int。

如果你真的想要这样做,你将需要扩展CI_DB_mysqli_driver(或你正在使用的任何数据库驱动程序)并覆盖insert_id()并确保它返回一个字符串,然后确保你总是把它当作一个字符串。不过,我强烈建议你做零填充的逻辑。