0

I am using this method to get the last inserted id:

$this->db->insert_id();

for example the inserted id in the database is 000055, but this function returns me only 55, how can I get the full unsigned zerofill id?

4

2 回答 2

0

为什么你的ID的零被填满了?如果它返回 1,这可能会导致问题,因为它会认为它是二进制数,而不是填充零的 int。甚至可能会有一个罕见的机会成为十六进制。如果您只想为应用程序填充 ID 的零,则在将其呈现到视图时在库或助手中处理它,因为由于 PHP 是松散类型的,它可能会认为您正在做一些比较或处理十六进制或二进制而不是一个整数。

如果您真的想这样做,您将需要扩展 CI_DB_mysqli_driver(或您正在使用的任何数据库驱动程序)并覆盖 insert_id() 并确保它返回一个字符串,然后确保您始终将其视为字符串。不过,我强烈建议您不要对零填充整数执行逻辑。

于 2013-04-03T22:05:59.697 回答
0

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

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

于 2013-04-03T21:34:04.937 回答