MySQL işlevi dinamik bir php insert yaratıyor?

1 Cevap php

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.

1 Cevap

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 ...