错误:键'PRIMARY'重复输入'0'

Arv*_*ens 8 mysql sql database

我无法解决我的问题,这是我得到的mysql的错误:

错误:键'PRIMARY'重复输入'0'

当我在数据库中有一条记录时,我可以编辑和更新我的数据但是当我添加两行时,我得到了错误.

一些图片来自数据库

当我更改行时,行ID下降到0,这是一个问题,因为我无法编辑其他行.

当我尝试更改行时,第一行ID下降到0 数据库

在此输入图像描述

CREATE TABLE `dati` (
 `ID` int(11) NOT NULL AUTO_INCREMENT,
 `title` varchar(255) NOT NULL,
 `value1` varchar(255) NOT NULL,
 `value2` varchar(255) NOT NULL,
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 PACK_KEYS=1
Run Code Online (Sandbox Code Playgroud)

更新代码:

<?php // Izlabot datus datub?z?!
$titletxt = $_POST['title_edit'];
$value1 = $_POST['value1_edit'];
$value2 = $_POST['value2_edit'];

if(isset($_POST['edit'])){
$con=mysqli_connect("localhost","root","","dbname");
if (mysqli_connect_errno())
  {
  echo "Neizdev?s savienoties ar MySQL: " . mysqli_connect_error();
  }
$sql="UPDATE dati SET ID='$ID',title= '$titletxt',value1='$value1',value2='$value2' WHERE 1";
if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
echo '<script>
        alert(" Ieraksts ir veiksm?gi labots! ");

        window.location.href = "index.php";
    </script>';
mysqli_close($con);
}
?>
Run Code Online (Sandbox Code Playgroud)

从形式:

<?php
            $con=mysqli_connect("localhost","root","","dbname");
            if (mysqli_connect_errno())
              {
              echo "Neizdev?s savienoties ar MySQL: " . mysqli_connect_error();
              }
            $result = mysqli_query($con,"SELECT * FROM dati");
            while($row = mysqli_fetch_array($result))
              {
              echo "<tr>";
                  echo "<td><input id='titled' type='text' name='title_edit' value='" . $row['title'] . "'></td>";
                  echo "<td><input id='value1d' type='text' name='value1_edit' value='" . $row['value1'] . "'></td>";
                  echo "<td><input id='value2d' type='text' name='value2_edit' value='" . $row['value2'] . "'></td>";
                  echo "<input type='hidden' name='id' value='" . $row['ID'] . "'>";
                  echo "<td><button name='edit' id='edit_btn' class='frm_btns' value='" . $row['ID'] . "'>Edit</button></td>";
              echo "</tr>";
              }
            mysqli_close($con);
        ?>
Run Code Online (Sandbox Code Playgroud)

它无法读取ID的值,因为返回了0.

css*_*hus 16

对于因问题标题而得出这个问题的人(正如我所做的那样),这解决了我的问题:

此错误可能表示表的PRIMARY KEY未设置为AUTO-INCREMENT,(并且您的插入查询未指定ID值).

解决:

检查是否有一个PRIMARY KEY在你的表中设置,并且主键被设置为自动递增.

如何使用phpmyadmin向mysql数据库中的列添加自动增量?

  • 还要确保您使用的是“正确”的数据库。我需要咖啡。#瘸 (2认同)
  • 并且您需要删除任何可能添加 ID 为 0 的行,因为自动递增从 1 开始,并且它会尝试修复该 0 并将其设为 1,但很可能已经有一个 ID 为 1,因此您将看到有关重复重新索引的错误。 (2认同)

Jos*_*tes 5

错误日志类似于(就我而言),我正在使用Aurora DB:

PHP 消息:WordPress 数据库错误重复条目“0”用于查询 INSERT INTO `date173_postmeta 的键“PRIMARY”

如何使用MySQL Workbench修复它:

1-连接到您的数据库,然后转到存在问题的表(在我的例子中)date173_postmeta

2- 选择工具图标:

在此输入图像描述

3- 在右侧的窗口/选项卡中,选择 AI 复选框单击“应用”按钮

在此输入图像描述

按照最后的步骤,我的问题消失了。


a14*_*14m 2

问题在set ID = $ID

尝试删除它,这样代码应该是

$sql="UPDATE `dati` `title`=        '$titletxt',`value1`='$value1',`value2`='$value2' WHERE 1";
Run Code Online (Sandbox Code Playgroud)

请务必更改此设置,因为它将使用这些值更新每一行