【问题标题】:Insert 2nd auto increment id for multiple rows为多行插入第二个自动增量 ID
【发布时间】:2019-02-23 10:50:40
【问题描述】:

我想为多行插入相同的自动增量 ID。目前,我使用的是默认的自动增量。如何为另一列中的多行添加第二个自动增量 id(相同的 id)?因为我在下面的代码中使用groupid。 .

$data = array();
foreach ($_POST['array'] as $key => $array) {
    $data[$key]['groupid'] = intval($array['groupid']);
    $data[$key]['User'] = strip_tags(trim(strval($array['user'])));
    $data[$key]['address'] = strip_tags(trim(strval($array['address'])));

}
$stmt = $pdo->prepare("INSERT INTO users ('groupid','user','address') VALUES (:groupid, :user, :address) ");
foreach ($data as $key => $array) {
    $stmt->execute(array(
        ':groupid' => $array['groupid'],
        ':user' => $array['user'],
        ':address' => $array['address'],
    ));
}

【问题讨论】:

  • 脚本中存在一些错误 - ['User] 中缺少右引号,您需要使用反引号圆形列名而不是单引号 - 'groupid' 等。
  • 也许您正在寻找这个? php.net/manual/en/pdo.lastinsertid.php
  • 不清楚你在这里问什么。 “第二个自动增量 ID”是什么意思 - MySQL 在使用自动增量时为每一行创建一个新 ID,如果您不希望不使用自动增量。
  • @feeela 正如上面问题中提到的,我目前正在使用 1 个自动增量 ID。我想要所有循环数据行的自动增量 id 1。

标签: php mysql auto-increment


【解决方案1】:

您的要求超出了auto_increment 的范围。我不知道允许这样做的 SQL 功能,您需要自己在应用程序中编写逻辑。

试试这个:

  • SELECT MAX(groupid) FROM users
  • 将结果保存为 PHP 变量
  • 为该变量加一 (+1)
  • 将INSERT 语句中的变量用于groupid。

【讨论】:

    猜你喜欢
    • 2011-08-23
    • 2019-07-12
    • 2016-10-31
    • 2012-02-01
    • 2014-08-10
    • 2012-01-18
    • 1970-01-01
    • 2012-04-08
    • 2018-03-18
    相关资源
    最近更新 更多