MySQL sorgusu yinelenen bir satır yaratıyor

6 Cevap php

Ben daha önce böyle bir hatayla hiç karşılaşmadım. Ben o baktı ne zaman hazırlanmış deyimleri kullanarak ve o çıplak bileşenlerinden için formunu aşağı sıyırma dahil sorunu düzeltmek için her şeyi denedim.

Aşağıdaki kod, çalıştırıldığında, yinelenen bir satır yaratıyor.

    $sql = "INSERT INTO inventory 
    VALUES  ('','$stocknum','$year','$make','$model','$price','$body','$mile','$engine','$trans',
    '$drive','$doors','$fuel','$vin','$des','$featured','$sale','$features','$safety','$airbags','$power',
    '$exterior','$interior','','','','','')";
$insert = mysql_query($sql,$connection) or die(mysql_error());
$name = mysql_insert_id();

Ben bunu yapmak neden etrafında başımı sarmak olamaz.

6 Cevap

Veritabanına erişmek için kullandığı ve orm kütüphane ederken bir projede aynı problem vardı. Ayrıca doğrudan mysql ile test çalıştı

Neredeyse bir gün birden fazla tarayıcılarda test ve diferente sonuçlarını aldıktan sonra, ben Chrome için (Webug) kullanılan uzantıları sayfasına tha hatırlama neden olduğunu öğrendim. Uzantıyı devre dışı bıraktıktan sonra, o amele

Webug: Ben o sorunu nedeniyle bazı uzantıları ... krom olarak test ettik.

Umarım yardımcı olur

Insert deyimi belki iki kez aradı oluyor. Emin Bu kod sadece bir kez çalışıyor olduğundan emin olmak için günlüğü eklediniz mi? Ve başka bir yerde envanter kayıtları eklemek için başka bir kod var emin olmak için arama yaptınız?

Kaç sütun envanter tablosunda var? Ikinci sıra ilk tam bir kopyasını mı? PHP'nin DB arayüzünü bilmiyorum ama ben bunu sütunlar vardır daha fazla alan verirseniz, birden fazla satır oluşturmak için çalışır, bir hata öngörülüyor.

EDIT: MySQL belgelerinde küçük bir araştırma bulur:

INSERT statements that use VALUES syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas. Example:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

The values list for each row must be enclosed within parentheses. The following statement is illegal because the number of values in the list does not match the number of column names:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3,4,5,6,7,8,9);

Eğer beklediğiniz gibi değişkenlerin içeriğine bağlı olarak ve PHP / MySQL sürücüsü bu değişkenleri (doğrudan metin yerdeğiştirme veya ? yertutucuları) nasıl işleyeceğini yürütülen deyim görünmeyebilir. Bunu çalıştırmak önce $sql değerini görüntüleyen deneyin.

Sonradan tablosunu sorgulamak, yalnızca bu tablodan seçerek ya da belki başka bir tabloya katılıyor? Eğer katıldı tabloda birden fazla alt kayıt varsa birden çok sonuç alırsınız.

Ben göremiyorum sayfanın geri kalanında bir şey olmadıkça kodunuzu, bana doğru görünüyor.

Bu benim gözlem herhangi bir gerçek net sonuç yokluğunda ben o artık SQL veri eklediği her komut aynı şeyi yapıyor gibi benim web barındırma ile ilgili bir şey olduğunu düşünüyorum 'devletlerin zaman Kırmızı Eleman doğru yolda olduğunu düşünüyorum olduğunu şey '.

Ben sorun yukarıda özetlenen ve farklı bir platformda aynı kodu koştu ve iyi çalıştı kadar bu neden yeryüzünde ne olduğunu göremiyordu vardı. Ben aslında bir localhost WAMP yapılandırmada test ama ben gerçek bir sunucu kodu terfi zaman, hiçbir sorun çalıştı.

Bu yüzden başkasının sorunu varsa farklı bir sunucu config bir cami olduğunu göstermektedir.

Ben aynı script 2 isteklerini yapıyor bir. Htaccess dosyası ile ilgili bir sorun var tahmin ediyorum. Eğer ekleme yapmak zaman zaman damgası ile bir mesaj açın.