sql >> Base de Datos >  >> RDS >> Mysql

$wpdb->insert produce la entrada duplicada '0-0' para la clave '1'

En cuanto a por qué no funciona:no establezca el tercer parámetro de $wpdb->insert a cadena vacía. Da formato a cada campo en consecuencia..

Lo que hace ahora es equivalente a:

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

Si realmente desea establecer el tercer parámetro, debe hacer:

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

En cuanto al error:la tabla wp_term_relationships tiene una clave principal única en (object_id, term_taxonomy_id). Esto significa que no puede tener dos filas en esa tabla que tengan el mismo object_id y term_taxonomy_id.

Aunque esto sucedió porque al establecer el tercer parámetro de inserción en una cadena vacía, intenta insertar filas con object_id=0 y term_taxonomy_id=0 una y otra vez.