sql >> Database teknologi >  >> RDS >> Mysql

$wpdb->insert producerer duplikatindtastning '0-0' for nøgle '1'

Med hensyn til hvorfor det ikke virker:Indstil ikke den tredje parameter for $wpdb->insert for at tømme streng. Den formaterer hvert felt i overensstemmelse hermed...

Hvad den gør nu, svarer til:

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

Hvis du virkelig ønsker at indstille tredje parameter, skal du gøre:

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

Hvad angår fejl:tabellen wp_term_relationships har en unik primær nøgle på (object_id, term_taxonomy_id). Det betyder, at du ikke kan have to rækker i den tabel, som både har samme objekt-id og term_taksonomi_id.

Selvom dette er sket, fordi du ved at indstille tredje parameter for indsæt til tom streng, forsøger at indsætte rækker med object_id=0 og term_taxonomy_id=0 igen og igen.



  1. Prøv at oprette en tabel fra Select - SQL Server 2008 kaster fejl

  2. Sådan udføres 2 eller flere SQL-forespørgsler i PHP uden at forbinde tabeller

  3. UTF-8:Generelt? Beholder? Unicode?

  4. Varchar eller tekstdatatyper for strenge længder op til nogle få tusinde tegn