i değişken bir LOT ile bir yazı var, ve post değişkenleri kullanıcının seçtiği ne bağlı olarak değiştirmek dinamik olarak mysql içine bilgi ekleme yerine, elle hepsini yazarak bazı yolu var mı diye merak ediyordum.
Bu, (biz hiçbir kontrole sahip, ve API erişimi hiçbir sahip olan bir tabloya ekleme) benzer bir şey yapmak için ne kullanın
TARİF sorguyu kullanarak mevcut takılı yalnızca sütunları sağlar.
$db = new DB();
$sql = 'DESCRIBE `table`';
$result = $db->query($sql);
$row = array();
$query = array();
while ($row = $result->fetchRow())
{
if (array_key_exists($row['field'], $form_data))
if (is_null($form_data[$row['field']]))
$query[$row['field']] = 'NULL';
else
$query[$row['field']] = $db->quote($form_data[$row['field']]);
}
$keys = array_keys($query);
foreach ($keys as &$key)
$key = $db->quoteIdentifier($key);
unset($key);
$vals = array_values($query);
$sql = 'INSERT INTO `table` '
. '(' . implode(', ', $keys) . ') '
. 'VALUES(' . implode(', ', $vals) . ')';
edit: DB () mdb2 etrafında sarıcı.
Ve tabii bu onları tüm satır doldurmak için izin verir. Sütunları (otomatik artış kimlikleri ve gibi) kısıtlı varsa, form verilerinin dışında bu filtre gerekecek ...