Utworzyłem dodatkowe tabele dla wtyczki, którą opracowuję i muszę dodać indeksy do tych tabel.
Jak to zrobić w WordPress?
dbDelta()
Wydaje się, że używanie nie działa i nie widzę żadnych błędów w logach.
Utworzyłem dodatkowe tabele dla wtyczki, którą opracowuję i muszę dodać indeksy do tych tabel.
Jak to zrobić w WordPress?
dbDelta()
Wydaje się, że używanie nie działa i nie widzę żadnych błędów w logach.
Za pomocą wpdb :: query () można wykonywać dowolne instrukcje SQL , w tym instrukcje definicji danych, np
function
create_index ()
{
global $wpdb ;
$sql = "CREATE INDEX my_index ON {$wpdb->prefix}my_table (my_column)" ;
$wpdb->query ($sql) ;
return ;
}
Uwaga: Ponieważ $wpdb->query()
można wykonać dowolny SQL, jeśli przekazana do niego instrukcja zawiera DOWOLNE dane wejściowe użytkownika, należy użyć wpdb :: prepar (), aby zabezpieczyć się przed atakami SQL Injection.
Rodzi to pytanie: w jaki sposób stworzyłeś tabele specyficzne dla wtyczek? „Ręcznie” czy programowo? Jeśli programowo, nie używałeś $wpdb->query()
? Jeśli zrobiłeś to „ręcznie”, naprawdę powinieneś utworzyć tabele (i ich indeksy) po aktywacji wtyczki.
Zobacz doskonałą odpowiedź na to drugie pytanie WPSE, aby dowiedzieć się, jak podłączyć aktywację wtyczki (i / lub dezaktywację i odinstalowanie) w celu tworzenia prywatnych tabel.
Korzystając z dbDelta, na kluczu podstawowym, możesz dołączyć słowo KLUCZ, aby utworzyć indeks dla innych kolumn:
Przykład ze schema.php w rdzeniu:
Źródło: codex - Tworzenie tabel z wtyczkami
źródło