sql >> Databasteknik >  >> RDS >> Mysql

$wpdb->insert producerar dubblettpost '0-0' för nyckel '1'

Angående varför det inte fungerar:ställ inte in den tredje parametern för $wpdb->insert för att tömma strängen. Den formaterar varje fält därefter...

Vad den gör nu motsvarar:

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

Om du verkligen vill ställa in den tredje parametern bör du göra:

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

När det gäller fel:tabellen wp_term_relationships har en unik primärnyckel på (object_id, term_taxonomy_id). Det betyder att du inte kan ha två rader i den tabellen som har både samma object_id och term_taxonomy_id.

Även om detta har hänt för att genom att ställa in den tredje parametern för infogning till tom sträng, försöker du infoga rader med object_id=0 och term_taxonomy_id=0 om och om igen.



  1. MySQL ROUND() Funktion – Runda ett tal till ett givet antal decimaler

  2. SQL Server-format Datum DD.MM.ÅÅÅÅ TT:MM:SS

  3. Hur man frågar metadata för index i PostgreSQL

  4. använda alias coalesce i ett tillstånd:coalesce (max(fall när värde sedan värde ) som alias