PHP bir yerine iki Satırlar takma SQL

4 Cevap php

Aşağıdaki kod benim veritabanına iki kayıtları ekleme, ama ben sadece birini eklemek istiyorum. Neden iki satır ekleme olduğunu?

<?
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}

$i=1;

while($i<=1)
{
    if (isset($_POST['submit'])) 
    {
        $sql="INSERT INTO customers 
                  (company, salutation, first_name, 
                   last_name, phone, email, fax, 
                   street, town, county, postcode, 
                   type, notes)
              VALUES
                  ('$_POST[company]',
                   '$_POST[salutation]',
                   '$_POST[first_name]',
                   '$_POST[last_name]',
                   '$_POST[phone]',
                   '$_POST[fax]',
                   '$_POST[email]',
                   '$_POST[street]',
                   '$_POST[town]',
                   '$_POST[county]',
                   '$_POST[postcode]',
                   '$_POST[type]',
                   '$_POST[notes]')";

        if (!mysql_query($sql,$con))
        {
            die('Error: ' . mysql_error());
        }
    }

    $i++;
}
?>

4 Cevap

Bir tahmin de, ben iki kez idam ediliyor çünkü olduğunu söyleyebilirim. (Yalaka olmak değil - büyük olasılıkla bir kontrol akış problemi, öyle duruyor gibi yukarıdaki iki eklemek neden olacak bir şey orada görünmüyor gibi.)

$ I değişkenin amacı nedir: O dedi, vb giriş kaçan bir eksikliği, örneğin orada epeyce kaygı verici şeyler var?

MÜŞTERİLER tablo en az bir birincil anahtar çiftleri durdurmak için tanımlanmış mı?

PHP webapp sütun kombinasyonu için MÜŞTERİLER tabloda zaten bir giriş tablo varsa bu sayfayı ulaşmasını birini durdurmak için yeteri kadar akıllı mı?

Ben sadece bu ikinci diyemeyiz. Ve bu kod ancak okunabilir girinti sadece non-var ve bunu yapmaz Sorgulamanızda Yazınızı değişkenleri katıştırma yolu daha kötüdür herhangi bir net (ve aslında bir güvenlik açığını neden olabilir) ya.

Lütfen $sql = ... canavarın peşinden echo $sql; yazmayı deneyin. Siz iki sorgu çalıştırılır olmadığını görmek mümkün olacak veya iki satır ekler ve bu niye son durumda muhtemelen size oldukça bir ipucu verecektir sadece bir sorgu olup olmadığını. Olacak Size yardımcı olmazsa, orada o sizin sonuçlarını yayınlamak, ve ben buraya bir başkası ona bir göz atabilirsiniz. Ama böyle inceliksiz koduyla kolay ya da bizim için hoş olmayacağını unutmayın.

Ben kodu ile çalıştım ve ben çift insert için herhangi bir neden göremiyorum. Bilmemiz gereken başka bir şey var mı? Bu soruna neden olmamalıdır, ama neden kodunuzda bir süre döngü vardır? Bu sayfa iki kez teslim ediliyor herhangi bir yolu var mı? Yerde bir tetikleyici var mı?