sql >> Databáze >  >> RDS >> Mysql

$wpdb->insert vytvoří duplicitní záznam '0-0' pro klíč '1'

Proč to nefunguje:nenastavujte třetí parametr $wpdb->insert vyprázdnit řetězec. Podle toho formátuje každé pole..

To, co nyní dělá, je ekvivalentní:

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

Pokud opravdu chcete nastavit třetí parametr, měli byste to udělat:

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

Pokud jde o chybu:tabulka wp_term_relationships má zapnutý jedinečný primární klíč (id_objektu, id_taxonomie_pojmu). To znamená, že v této tabulce nemůžete mít dva řádky, které mají stejné object_id a term_taxonomy_id.

I když se to stalo, protože nastavením třetího parametru insert na prázdný řetězec se pokoušíte vkládat řádky s object_id=0 a term_taxonomy_id=0 znovu a znovu.



  1. Jak zobrazit řazení databáze v SQL Server (T-SQL)

  2. Spouští PostgreSQL nějaké optimalizace výkonu pro transakce pouze pro čtení?

  3. Mohu předat číslo pro varchar2 v Oracle?

  4. Průměrný časový rozdíl v mysql