sql >> Database >  >> RDS >> Mysql

$wpdb->insert produceert dubbele invoer '0-0' voor sleutel '1'

Waarom het niet werkt:stel de derde parameter van $wpdb->insert niet in string leeg te maken. Het formatteert elk veld dienovereenkomstig..

Wat het nu doet is gelijk aan:

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

Als u echt een derde parameter wilt instellen, moet u het volgende doen:

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

Wat betreft de fout:de tabel wp_term_relationships heeft een unieke primaire sleutel (object_id, term_taxonomy_id). Dit betekent dat u geen twee rijen in die tabel kunt hebben die beide dezelfde object_id en term_taxonomy_id hebben.

Hoewel dit is gebeurd omdat u door de derde parameter van insert op een lege string in te stellen, u steeds opnieuw probeert rijen in te voegen met object_id=0 en term_taxonomy_id=0.



  1. Speciale tekens in PHP / MySQL

  2. Breng uw eigen cloud beschikbaar voor DigitalOcean

  3. MySQL SELECT-functie om huidige gegevens op te tellen

  4. Hoe u aan Amazon MySQL RDS-certificaten kunt komen