PHP MYSQL - kolon isimlerini kullanmadan ancak değiştirmemesi alanıyla içine yerleştirin

4 Cevap php

Ben bir mysql tabloya 32. alanları ile uzun bir form eklemek için var.

Ben böyle böyle bir şey yapmak istiyorum:

$sql="insert into tblname values (... 32 fields ...)";

Alanları mysql tablo alanları olarak aynı sırayla olsaydı Obviosly iyi çalışıyor. Ama benim masa ilk alan olarak bir id (otomatik artış) sahiptir.

İstediğim tüm tablo isimleri ancak ilk (id) bir doldurmaktır.

Önerileriniz?

4 Cevap

Sadece ilk değer olarak NULL kullanmak beklendiği gibi, autoincrement alanı hala çalışır:

INSERT INTO tblname VALUES (NULL, ... 32 Fields ... )

NULL otomatik artış alana yerleştirin.

Ben bu bir hack script sürece, alan adlarını kullanmanızı öneririz. Gerekçe kodunuzu break Hiç tabloya bir alan eklemek veya kendi sırasını değiştirmek eğer olmasıdır.

Bunun yerine, alan adları ile açık olması ve gelecekte çok daha iyi gidecek.

Biz insert sorgudaki sütun isim vermeden çalıştığınızda Biz, herhangi bir sütun değerlerini atlarsanız

Yukarıdaki bilgiler yanlışsa öneriyoruz.

İşte ben kullandım büyük bir kısayol (benim için yazdı bir arkadaş nezaket) bulunuyor

$fieldlist=$vallist='';
foreach ($_POST as $key => $value) {
 $fieldlist.=$key.',';
 $vallist.='\''.urlencode($value).'\','; }
$fieldlist=substr($fieldlist, 0, -1);
$vallist=substr($vallist, 0, -1);
$sql='INSERT INTO customer_info ('.$fieldlist.') VALUES ('.$vallist.')';