【问题标题】:how to auto-increment a value in php?如何在php中自动增加一个值?
【发布时间】:2014-03-17 03:18:46
【问题描述】:

我是 php 新手,当我在表中添加数据时,item_id 将是 AUTO INCREMENT 并且它必须从 00000001 开始我将使用什么 php 函数?

item_Id | item_description
00000001| Samsung galaxy s3

当我添加另一个项目时,它会是这样的:

 item_Id | item_description
 00000001| Samsung galaxy s3
 00000002| Remote Controller

我正在使用 codeigniter。

【问题讨论】:

标签: php mysql sql codeigniter


【解决方案1】:

当您定义表时,您在数据库中执行自动递增:

create table items (
    item_id unsigned not null auto_increment,
    . . .
);

插入项目时,只需插入除item_id之外的所有其他列:

insert into items(col1, . . . )
    . . .

每当插入新值时,数据库都会将item_id 设置为新值。

注意:插入的值是一个整数。如果你想把它作为一个零填充的字符串拉出来,你可以这样做:

SELECT LPAD(item_id, 8, '0')

【讨论】:

  • 当我设置item_id时会是这样吗? item_id unsigned not null auto_increment = "00000001", ?
  • @Vincent 。 . .初始值为1,所以不需要设置。而且,前导零是无用的,因为该列是数字的。你可以在查询值的时候把它们放进去。
  • 但我需要其他七个零,我会在我的其他 html 页面中显示它
  • 这就是我有“注释”的原因。您可以使用lpad() 将其与前导零拉出。如果您考虑一下,您不能“增加”字符串值。但是,您可以增加一个数字并将其转换为字符串。
  • @GordonLinoff 我没有将 ZEROFILL 与 PHP 结合使用,但 item_id INT(8) UNSIGNED NOT NULL ZEROFILL AUTO_INCREMENT; 不能将其捕获为 PHP 中的填充值吗?编辑:哇,老线程。不确定最近的问题是如何/为什么会出现这种情况的。
【解决方案2】:

因为它是一个项目 ID 并且不用于计算,所以只需使用 VARCHAR 并格式化数字以添加前导零并转换为字符串 http://php.net/manual/en/function.sprintf.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-09
    • 2015-05-09
    • 2015-10-17
    • 1970-01-01
    • 2012-06-18
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    相关资源
    最近更新 更多