Soporte » Plugins y Hacks » wpDataTables base de datos diferente

  • Hola! estoy construyendo un sitio donde necesito poner información de eventos, esos eventos estan en una base de datos externa a la de WordPress pero dentro del mismo servidor del sitio.

    Encontre el plugin de wpDataTables y ya he intentado extraer la información via mysql pero no he podido porque me sigue tomando por “default” la base de datos WordPress y yo necesito otra diferente para crear las tablas con contenido.

    Alguna idea? O alternativas?

Viendo 2 respuestas - 1 de 2 (de 2 total)
  • Moderador LGrusin

    (@lgrusin)

    Suponiendo que esa base de datos esté en el formato correcto algo como:
    $midatabase = new wpdb('username','password','database','localhost');

    Debería acceder a la otra base de datos. Por supuesto, cambia el usuario y la contraseña de acceso para esa segunda base de datos. Mira en el CODEX para más referencias sobre la clase wpdb.

    Un saludo

    • Esta respuesta fue modificada hace 4 meses, 3 semanas por  LGrusin.
    • Esta respuesta fue modificada hace 4 meses, 3 semanas por  LGrusin.

    ¡Hola!
    Entiendo que el citado plugin no facilita la tarea de conexión con otras base de datos y quieres realizarlo tu mismo y luego ya usar ese plugin para crear las tablas.

    Conectar a una segunda base de datos es posible utilizando las funciones de WordPress, y requiere crear una nueva instancia de la clase WPDB. Una vez creada puedes usarla de la misma manera que usarías la instancia estándar de $wpdb.

    Si el acceso a esa base de datos es el mismo puedes probar de este modo:

    global $wpdb;
    $wpdb->select('database_name');
    $results = $wpdb->get_results($your_query);
    //Al terminar borrar cache
    $wpdb->flush();

    Si el acceso varía respecto la configuración establecida para WordPress en wp-config.php (aunque tampoco necesitas definir nuevas variables y dependerá del tipo de desarrollo…) podría ser:

    global $wpdb;
    define('EXTERNAL_DB_USER', 'root'); //username
    define('EXTERNAL_DB_PASS', 'password'); //password
    define('EXTERNAL_DB_NAME', 'table'); //databse
    define('EXTERNAL_DB_HOST', '127.0.0.1'); //localhost
    
    $external_db = new wpdb(EXTERNAL_DB_USER, EXTERNAL_DB_PASS, EXTERNAL_DB_NAME, EXTERNAL_DB_HOST);
    
    $results = $external_db->get_results($your_query);

    Para una conexión externa válida deberás configurar tu hosting para que así lo permita y no sólo ‘localhost’, así como crear un nuevo usuario en la base de datos externa cuyos datos introduces al crear la nueva estancia de wpdb.

Viendo 2 respuestas - 1 de 2 (de 2 total)
  • Debes estar registrado para responder a este tema.