Wenn Sie mysql_query () in einer anderen database aufrufen, wird davon ausgegangen, dass WordPress diese database verwendet

Ich versuche, Daten von einer Legacy-Site in WordPress zu importieren. Erster Schritt sind die Begriffe für die Taxonomie event_category . Hier ist mein Ansatz:

 $link = mysql_connect( 'localhost', 'blah', 'blah' ); // connect to old database $dkpl_db = mysql_select_db('dkpldump', $link); $event_categories = mysql_query('SELECT * FROM calendar_cats'); while($event_category = mysql_fetch_assoc($event_categories)){ //create term! $term = wp_insert_term( $event_category['categoryId'], 'event_category', array( 'slug' => $event_category['categoryName'] ) ); var_dump($term); } 

In meinem var_dump ich folgenden Fehler:

 WP_Error Object ( [errors] => Array ( [db_insert_error] => Array ( [0] => Could not insert term into the database ) ) [error_data] => Array ( [db_insert_error] => Table 'dkpldump.wp_terms' doesn\'t exist ) ) 

Das Problem ist dkpldump ist die database, von der ich versuche zu lesen , nicht die database, auf der WordPress installiert ist ( dkpl ). Warum versucht es, in dkpldump database zu schreiben und wie kann ich es reparieren?

Solutions Collecting From Web of "Wenn Sie mysql_query () in einer anderen database aufrufen, wird davon ausgegangen, dass WordPress diese database verwendet"

Verwenden Sie eine neue Instanz von wpdb , um eine Verbindung zur anderen database wpdb und von wpdb zu lesen:

 $mydb = new wpdb('blah','blah','dkpldump','localhost'); $event_categories = $mydb->get_results("SELECT * FROM calendar_cats"); foreach( $event_categories as $event_category ){ //create term! $term = wp_insert_term( $event_category->categoryId, 'event_category', array( 'slug' => $event_category->categoryName ) ); }