编码器从数据库返回无符号的零填充id


Codeigniter return unsigned zerofill id from database

我使用这个方法来获取最后插入的id:

$this->db->insert_id();

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

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

所以,不改变./system/database/drivers/mysql/mysql_driver.php文件,我认为没有办法

为什么你的ID的零填充?如果它返回1,这可能会导致问题,因为它会认为它是一个二进制数,而不是一个0填充的int。甚至也有机会被施咒。如果你只是想在应用程序中填充你的ID为0,那么当你把它呈现给视图时,在库或助手中处理它,因为PHP是松散类型的,它可能会认为你在做位比较,或者处理十六进制或二进制,而不是整型。

如果你真的想这样做,你将需要扩展CI_DB_mysqli_driver(或任何你正在使用的db驱动程序)和覆盖insert_id(),并确保它返回一个字符串,然后确保你总是把它当作一个字符串。尽管如此,我还是强烈建议你不要对0填充的整数进行逻辑处理。