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

$wpdb->insert generuje zduplikowany wpis „0-0” dla klucza „1”

Dlaczego to nie działa:nie ustawiaj trzeciego parametru $wpdb->insert do pustego ciągu. Odpowiednio formatuje każde pole.

To, co teraz robi, jest równoznaczne z:

$wpdb->insert($table, array(
            'object_id' => sprintf('', $num_object_id), 
            'term_taxonomy_id' => sprintf('', $num_taxo_id),
            'term_order' => sprintf('', 0)
));

Jeśli naprawdę chcesz ustawić trzeci parametr, powinieneś zrobić:

$wpdb->insert($table, array(
            'object_id' => $num_object_id, 
            'term_taxonomy_id' => $num_taxo_id,
            'term_order' => 0
), array('%d', '%d', '%d'));

Jeśli chodzi o błąd:tabela wp_term_relationships ma unikalny klucz podstawowy (object_id, term_taxonomy_id). Oznacza to, że nie możesz mieć dwóch wierszy w tej tabeli, które mają zarówno ten sam object_id, jak i term_taxonomy_id.

Chociaż stało się tak, ponieważ ustawiając trzeci parametr wstawiania na pusty ciąg, próbujesz w kółko wstawiać wiersze z object_id=0 i term_taxonomy_id=0.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Użyj instrukcji WHERE, aby wskazać konkretny wiersz

  2. Pobierz wszystkie posty, które mają określony tag i zachowaj wszystkie inne tagi w wynikach za pomocą SQL

  3. Jak wyświetlić unikalne ograniczenia tabeli w MySQL?

  4. dlaczego to zapytanie MySQL generuje nieprawidłowe numery wierszy?

  5. Linq to SQL przy użyciu grupy By i uporządkowania według liczby