完整性约束违规:1062关键“PRIMARY”的重复条目'1' [英] Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY'

查看:1538
本文介绍了完整性约束违规:1062关键“PRIMARY”的重复条目'1'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据库问题,我得到完整性约束违反:1062.
我自己尝试了一些事情,但它没有工作,所以现在我要求你们看看你是否可以帮助我。 / $ p

$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ){
$ title = $ _POST ['txtTitle'];
$ txtParentCategorie = $ _POST ['txtParentCategorie'];
$ txtContent = $ _POST ['txtContent'];

if($ txtParentCategorie ==niks){
$ txtParentCategorie = NULL;
$ chkParent = 1;
$ order_count = countQuery(SELECT CATEGIEID FROM prod_categorie WHERE parentID =?,array(1));
$ order = $ order_count + 1;
} else {
$ chkParent = null;
$ order_count = countQuery(SELECT CATEGIEID FROM prod_categorie WHERE parentID not NULL);
$ order = $ order_count + 1;
}

查询(INSERT INTO prod_categorie(categoriesieID,parentID)VALUES(?,?),array($ chkParent,$ txtParentCategorie));
$ inserted_id = getLastInsertId();
Query(INSERT INTO tekst(tabel,kolom,item_id,tekst,taalID)VALUES(?,?,?,?),array('prod_categorie','categoriename',$ inserted_id,$ title ,$ lang));
Query(INSERT INTO tekst(tabel,kolom,item_id,tekst,taalID)VALUES(?,?,?,?),array('prod_categorie','content',$ inserted_id,$ txtContent ,$ lang));
$ languages = selectQuery(SELECT taalID FROM taal WHERE taalID!=?,array($ lang));
}

当我运行这个第一个INSERT INTO不填写任何数据并给出错误:
完整性约束违规:1062键PRIMARY的重复条目'1'
那里已经有一个主键1。但它是自动增量。
在tekst tabel中,item_id获得0的输入。



Javascript:

  $('。btnAddCategorie')。click(function(){
if(busy!= 1){
busy = 1;
var error = 0;
var gallery = $('select [name =gallery_dropdown]')val();
if($('input [name =txtTitle]')val() '){
error = 1;
alert('Het titel veld is nog leeg');
$('input [name =txtTitle]')focus();
}
if(error!= 1){
$('。content_load_icon')。html('< img src =../../ includes / images / layout / load_small .gif/>');
var content = $('#cke_ckeditor')。children()。children()。children()[3] .contentWindow.document.childNodes [1] .childNodes [ 1] .innerHTML;
$ .ajax({
url:'../../action/ac_productbeheer.php?a=add',
type:'POST',
数据: {txtTitle:$('input [name =txtTitle]')。val(),txtForm:$('select [name =txtForm]')val(),customGalTitle:$('。txtCustomGalleryTitle' .val(),gallery_dropdown:gallery,txtParentCategorie:$('select [name =txtParentCategorie]')val(),txtContent:content,txtMeta:$('。txtMetaDesc')。val(),create:true },
success:function(data,textStatus,xhr){
$('。content_load_icon')。html('');
$('。txtContentConsole')。html('Product succesvol opgeslagen!')。show()。delay(2000).fadeOut(200);
busy = 0;
saved = 1;
window.location ='../../modules/productbeheer/index.php';
},
error:function(xhr,textStatus,errorThrown){
$('。content_load_icon')。html('');
$('。txtContentConsole')。html('Fout bij opslaan!Probeer het later nog een keer。')。show()。delay(2000).fadeOut(200);
busy = 0;
}
});
} else {
error = 0;
busy = 0;
}
}
});

html:

 code>< a class =btnAddCategorie>< img name =btnOpslaansrc =/'。CMS_ROOT。'/ includes / images / layout / opslaan.png/>< / a& ;< span class =content_load_icon>< / span>< span class =txtContentConsole>< / span> 

希望有人能帮助我在这里。
提前感谢。 :)

解决方案

当插入具有自动增量字段的表格时,根本不应指定自动增量字段本身。

 查询(INSERT INTO prod_categorie(categoriesieID,parentID)VALUES(?,?),array($ chkParent,$ txtParentCategorie )); 
^^^^^^^^^^^ ^^^^^^^^^^

应该只是

 查询(INSERT INTO prod_categorie(parentID)VALUES(?),array txtParentCategorie)); 

刚刚添加为评论讨论的答案,以允许接受并完成问题。


I have a databse problem where i get Integrity constraint violation: 1062. I tried some things on my own but it didtn work so now i am asking you guys to see if you people can help me out.

elseif($action == 'add') {
if($_POST['create'] == true) {
    $title = $_POST['txtTitle'];
    $txtParentCategorie = $_POST['txtParentCategorie'];
    $txtContent = $_POST['txtContent'];

    if($txtParentCategorie == "niks") {
        $txtParentCategorie = NULL;
        $chkParent = 1;
        $order_count = countQuery("SELECT categorieID FROM prod_categorie WHERE parentID=?",array(1));
        $order = $order_count + 1;
    } else {
        $chkParent = null;
        $order_count = countQuery("SELECT categorieID FROM prod_categorie WHERE parentID is not NULL");
        $order = $order_count + 1;
    }

    Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));
    $inserted_id = getLastInsertId();
    Query("INSERT INTO tekst (tabel, kolom, item_id, tekst, taalID) VALUES(?, ?, ?, ?, ?)", array('prod_categorie', 'categoriename', $inserted_id, $title, $lang));
    Query("INSERT INTO tekst (tabel, kolom, item_id, tekst, taalID) VALUES(?, ?, ?, ?, ?)", array('prod_categorie', 'content', $inserted_id, $txtContent, $lang));
    $languages = selectQuery("SELECT taalID FROM taal WHERE taalID!=?",array($lang));
}

when i run this the first INSERT INTO doesnt fill in any data and giving this error: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY' there already is a primary 1 key in there. but it is on auto increment. in the tekst tabel the item_id gets an 0 input.

Javascript:

    $('.btnAddCategorie').click(function(){
    if(busy != 1){
        busy = 1;
        var error = 0;
        var gallery = $('select[name="gallery_dropdown"]').val();
        if($('input[name="txtTitle"]').val() == ''){
            error = 1;
            alert('Het titel veld is nog leeg');
            $('input[name="txtTitle"]').focus();
        }
        if(error != 1){
            $('.content_load_icon').html('<img src="../../includes/images/layout/load_small.gif" />');
            var content = $('#cke_ckeditor').children().children().children()[3].contentWindow.document.childNodes[1].childNodes[1].innerHTML;
            $.ajax({
                url: '../../action/ac_productbeheer.php?a=add',
                type: 'POST',
                data: {txtTitle: $('input[name="txtTitle"]').val(), txtForm: $('select[name="txtForm"]').val(), customGalTitle: $('.txtCustomGalleryTitle').val(), gallery_dropdown: gallery, txtParentCategorie: $('select[name="txtParentCategorie"]').val(), txtContent: content, txtMeta: $('.txtMetaDesc').val(), create: true},
                success: function(data, textStatus, xhr) {
                    $('.content_load_icon').html('');
                    $('.txtContentConsole').html('Product succesvol opgeslagen!').show().delay(2000).fadeOut(200);
                    busy = 0;
                    saved = 1;
                    window.location = '../../modules/productbeheer/index.php';
                },
                error: function(xhr, textStatus, errorThrown) {
                    $('.content_load_icon').html('');
                    $('.txtContentConsole').html('Fout bij opslaan! Probeer het later nog een keer.').show().delay(2000).fadeOut(200);
                    busy = 0;
                }
            });
        } else {
            error = 0;
            busy = 0;
        }
    }
});

html:

<a  class="btnAddCategorie"><img name="btnOpslaan" src="/'.CMS_ROOT.'/includes/images/layout/opslaan.png" /></a><span  class="content_load_icon"></span><span  class="txtContentConsole"></span>

Hope someone can help me on here. already alot of thanks in advance. :)

解决方案

When inserting into a table with an auto increment field, the auto increment field itself should not be specified at all.

Query("INSERT INTO prod_categorie (categorieID, parentID) VALUES (?, ?)", array($chkParent, $txtParentCategorie));
                                   ^^^^^^^^^^^                    ^             ^^^^^^^^^^

Should be just

Query("INSERT INTO prod_categorie (parentID) VALUES (?)", array($txtParentCategorie));

Just added as answer from comment discussion to allow accept and finishing the question.

这篇关于完整性约束违规:1062关键“PRIMARY”的重复条目'1'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆