Właśnie napisałem swoją, narazie jeszcze prostą klasę obsługi bazy danych. Poniżej załączam urywek funkcji dodającej rekord to tablicy:
<?php public function insert($table, $values, &$reference = '') { $this -> queries++; foreach ($values as $field => $value) { $comma = ''; } else { $array['fields'] .= ', `'.$field.'`'; $array['values'] .= ', ''.$value.'''; } } $query = 'INSERT INTO `'.$this -> prefix.$table.'` ('.$array['fields'].') VALUES ('.$array['values'].')'; switch ($this -> db_type) { // ... MySQL database case 'mysql': return TRUE; } else { return FALSE; } break; } } ?>
Zależy mi na napisaniu warunku, który pozwalałby na wysłanie zapytania w stylu:
INSERT INTO `tabela` VALUES ('x','y','z');
czyli bez podawania nazw pól w tabeli.
Wydaje mi się, że najłatwiejszym sposobem byłoby sprawdzenie indexów tablicy, czy są numerowane od zera wzwyż. Wydaje mi się też, że nie ma takiej funkcji, bo przeglądając manual, znalazłem tylko dwie funkcje, których skrócony opis zaczyna się wyrażeniem Checks mianowicie: array_key_exists i in_array...
Moje sugerowane rozwiązanie tego problemu to schematycznie:
Kod
<?
$i = -1;
foreach ($table as $index => $value) {
$i++;
if ($index != $i) {
$false = '';
}
}
?>
$i = -1;
foreach ($table as $index => $value) {
$i++;
if ($index != $i) {
$false = '';
}
}
?>
Czy ktoś ma na myśli jakieś ciekawsze rozwiązanie? Dzięki
