Mysql
 sql >> Baza danych >  >> RDS >> Mysql

tworzenie dynamicznego wstawiania php do funkcji mysql?

To jest to, czego używamy do podobnych rzeczy (wstawianie do tabeli, nad którą nie mamy kontroli i która nie ma dostępu do API)

Użycie zapytania DESCRIBE zapewnia wstawianie tylko istniejących kolumn.

$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) . ')';

edycja:DB() jest naszym opakowaniem wokół MDB2.

I to oczywiście pozwala im wypełnić cały rząd. Jeśli masz ograniczone kolumny (identyfikatory automatycznego zwiększania itp.), musisz je odfiltrować z danych formularza...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. travis mysql baza danych tworzy błąd użytkownika

  2. jak sprawdzić zapytania, które są aktualnie uruchomione w mojej bazie mysql?

  3. Jak utworzyć wyzwalacz do usuwania php myadmin

  4. Doprecyzowanie wyników wyszukiwania na podstawie filtrów

  5. Wyzwalacz MySQL - zaktualizuj tabelę o wartość wybraną z innej tabeli