密钥PRIMARY的重复输入IMG002

时间:2017-03-27 05:56:03

标签: php mysql

帮我解决此问题,重复输入' IMG002'关键' PRIMARY'。

IMG002仅存储在数据库中而IMG001不存储在数据库中。结果。$ hasilkode总是IMG002。

$carikode = mysql_query("select * from foto") or die (mysql_error());
  $datakode = mysql_fetch_array($carikode);
  $jumlah_data = mysql_num_rows($carikode);
  if ($datakode) {
   $nilaikode = substr($jumlah_data[0], 1);
   $kode = (int) $nilaikode;
   $kode = $jumlah_data + 1;
   $hasilkode = "IMG".str_pad($kode, 3, "0", STR_PAD_LEFT);
  } else {
   $hasilkode = "IMG001";
  }
$sql = "INSERT INTO foto (id,gambar,keterangan) values ('$hasilkode','$fileName','".$_POST['kete']."')";
mysql_query($sql) or die (mysql_error());
if ($uploadOk == 0) {
    echo "Sorry, your file was not uploaded.";
} else {
    if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
        echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
    } else {
        echo "Sorry, there was an error uploading your file.";
    }
}

2 个答案:

答案 0 :(得分:0)

这意味着您的数据库集中的“id”列似乎是主键(即 - 唯一),您显然正在尝试创建具有重复值的行(在本例中为“IMG002”) )。

答案 1 :(得分:0)

主键必须包含 UNIQUE 值,不能包含NULL 值。

您需要首先检查 hasilkode 是否存在db 如果存在然后执行更新查询,否则执行插入查询< /强>

其他方式是您可以为商店 hasilkode 添加新列,并将自动增量设置为id列,然后执行插入查询。