Title: Conectar a base de datos MySQL externa con php desde shortcode
Last modified: 27 de febrero de 2020

---

# Conectar a base de datos MySQL externa con php desde shortcode

 *  [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/)
 * (@bigdatadestroy)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/)
 * Hola de nuevo compañeros! Ante todo, las gracias por adelantado por vuestra ayuda.
   
   He creado un shortcode que contiene código PHP y que realiza una conexión a una
   base de datos sql remota (fuera de wordpress). Lo que pretendo es traer unos 
   datos que me hacen falta para mostrarlos en las paginas de wordpress correspondientes.
   El código lo he probado en un editor externo y funciona, consigue conectar con
   la base de datos sql remota y da ‘Conexión exitosa’. Pero aquí en wordpress nunca
   llega a conectar y da el siguiente error ‘Conexión fallida: Can’t connect to 
   MySQL server on ‘db4free.net’ (111 «Connection refused»)’ El código que estoy
   utilizando en el shortcode es el siguiente:
 *     ```
       <?php
       $dbServerName = "db4free.net";
       $dbUsername = "usuario";
       $dbPassword = "contraseña";
       $dbName = "nombrebasededatos";
   
       // create connection
       $conn = new mysqli($dbServerName, $dbUsername, $dbPassword, $dbName);
   
       // check connection
       if ($conn->connect_error) {
           die("Conexión fallida: " . $conn->connect_error);
       }
       echo "Ehorabuena!!! Has conectado con la base de datos correctamente.";
       ?>
       ```
   
 * No se si WordPress viene de alguna manera ‘capado’ para que no se puedan establecer
   conexiones remotas con otras bases de datos mediante código o es algo que se 
   me escapa. Pero ya os digo que el codigo que os he puesto funciona, puesto que
   lo he comprobado mediante un editor en linea y consigue conectar con la base 
   de datos. (He sustituido los datos privados de la base de datos para la conexión,
   por seguridad).
    A ver si alguien sabe a que puede deberse el que no pueda conectar.
   Muchas gracias. Un saludo.
 * Nota: Los shortcode los creo a través de un plugin llamado ‘Insert PHP Code Snippet’,
   y ahí meto el código en php. Después ya los inserto en cualquier pagina que necesite
   mediante el shortcode que me ha asignado el plugin. Por ahora no me había dado
   ningún problema.
    -  Este debate fue modificado hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).
    -  Este debate fue modificado hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).

Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)

 *  Moderador [almendron](https://es.wordpress.org/support/users/almendron/)
 * (@almendron)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12171854)
 * Echa un vistazo a [https://codex.wordpress.org/Class_Reference/wpdb](https://codex.wordpress.org/Class_Reference/wpdb)
 * Y comprueba si te conecta usando
 * `$conn = new wpdb ($dbServerName, $dbUsername, $dbPassword, $dbName);`
 *  Moderador [almendron](https://es.wordpress.org/support/users/almendron/)
 * (@almendron)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12171856)
 * En algunos ejemplos me he encontrado con que el orden de las variables sería 
   el siguiente:
 * DB_USER, DB_PASSWORD, DB_NAME, DB_HOST
 * Mira en [Code Reference](https://developer.wordpress.org/reference/classes/wpdb/__construct/).
    -  Esta respuesta fue modificada hace 6 años, 7 meses por [almendron](https://es.wordpress.org/support/users/almendron/).
 *  Iniciador del debate [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/)
 * (@bigdatadestroy)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12171879)
 * Hola **almendron** máquina!!! Pues mira, he probado de las 2 maneras que me has
   dicho. Y en una de ellas **has dado en el clavo**!!!
    Cambiando el orden de los
   datos de acceso **no** ha funcionado. Pero cambiando el tipo de objeto a **wpdb**
   como me propones en la nueva línea de código **ha funcionado a la perfección**!!
   El código correcto entonces sería el siguiente (para el que lo pueda necesitar):
 *     ```
       <?php
       $dbServerName = "db4free.net";
       $dbUsername = "usuario";
       $dbPassword = "contraseña";
       $dbName = "nombrebasededatos";
   
       // create connection
       $conn = new wpdb ($dbServerName, $dbUsername, $dbPassword, $dbName);
   
       // check connection
       if ($conn->connect_error) {
           die("Conexión fallida: " . $conn->connect_error);
       }
       echo "Ehorabuena!!! Has conectado con la base de datos correctamente.";
       ?>
       ```
   
 * De verdad **almendron** que te estoy muy agradecido!! Que haríamos los usuarios
   sin gente que tiene buena voluntad de ayudar. Me había vuelto loco haciendo pruebas
   y nada. Gracias a esto podré hacer los accesos a la base de datos para extraer
   los datos de tablas que necesito y para rellenar etiquetas.
    Un gran saludo!!
    -  Esta respuesta fue modificada hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).
 *  Moderador [almendron](https://es.wordpress.org/support/users/almendron/)
 * (@almendron)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12171884)
 * De nada. Un saludo.
 *  [ganjah](https://es.wordpress.org/support/users/ganjah/)
 * (@ganjah)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12171957)
 * Hola a todos!
 * Gracias por compartir! estoy luchando por hacer también unas consultas a una 
   base de datos externa alojada en google bigquery y no tenia ni idea por donde
   empezar.
 * Gracias por compartir el código, es un punto de partida.
 *  Iniciador del debate [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/)
 * (@bigdatadestroy)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12172111)
 * Hola chicos! Perdonad que reabra el tema de nuevo, pero es que llevo varios dias
   intentando extraer datos de las tablas en la base de datos y no puedo hacerlo
   🙁
    La conexión a la base de datos como tal, se realizaba….hasta ahí todo correcto.
 * El problema es que después, tengo que hacer una consulta a una de las 3 tablas
   que tiene mi base de datos y imprimir el resultado en pantalla, pero no consigo
   que se imprima nada. He probado de 1.000 maneras diferentes pero nada. No se 
   si es que tengo que agregar algo a algún archivo de configuración de wordpress
   para que me permita hacer la conexión externa o algo que estoy haciendo mal.
 * Pongo aquí el código que sumo al anterior codigo de este tema -que es el que 
   realizaba la conexión a la database-, para que miréis por favor si es que tengo
   algo mal o hay que hacerlo diferente.
 *     ```
       // Hacemos la consulta en la tabla y mostramos resultados
                    $my_table = 'intereses';
                    $query = "SELECT * FROM $mi_tabla";
                    $content = $conn->get_results( $query );
                    if ( count($content) > 0 ) {
                         foreach ( $content as $row ) {
                                   echo $row->info;
                         }
                    }
       ```
   
 * Mi base de datos tiene 3 tablas (intereses,cobrado y invertido), como veis en
   el codigo yo hago la consulta sobre la tabla **intereses**, y después intento
   mostrar el resultado con un foreach. Pero no muestra absolutamente nada.
    Como
   siempre gracias por adelantado.
    -  Esta respuesta fue modificada hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).
    -  Esta respuesta fue modificada hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).
    -  Esta respuesta fue modificada hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).
 *  Moderador [almendron](https://es.wordpress.org/support/users/almendron/)
 * (@almendron)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12172114)
 * Echa un vistazo: [https://developer.wordpress.org/reference/classes/wpdb/get_results/](https://developer.wordpress.org/reference/classes/wpdb/get_results/)
 *  Iniciador del debate [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/)
 * (@bigdatadestroy)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12172175)
 * Me estoy volviendo tarumba!! creo que al final la pagina la haré desde otro editor,
   porque en wordpress tienes que adaptar un codigo que debería funcionar por ser
   en php sin tener que adaptar nada.
 *  Iniciador del debate [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/)
 * (@bigdatadestroy)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12172218)
 * Bueno, al final no quiero abandonar todo el trabajo que ya he hecho en la plataforma
   wordpress que estoy preparando. Almendron, miré lo que me habías mandado, y rectifiqué
   cosas, pero sigue sin funcionar. Paso el codigo que tengo ahora. Están los datos
   de la base de datos, pero como es una base de datos de prueba me da igual que
   se vean los datos, por si quereis hacer alguna prueba con el codigo. Supuestamente
   debería funcionar así, incluso en algunas webs dicen que funciona, pero aquí 
   no funciona. Incluso he creado un shortcode dentro del functions.php para ver
   si el problema era el plugin que utilizo para meter php dentro de las paginas,
   pero tampoco ahí ha funcionado.
 *     ```
       <?php
       global $wpdb;
       $mydb = new wpdb( 'vargame_42', 'eurovegas42', 'vargame_42','db4free.net' ) or die("Error en la conexion");
       $mydb->show_errors();
       $consulta= $mydb->query("SELECT interes,mes FROM intereses") or die("Error en la consulta");
           foreach( $consulta as $results ) {
               echo $results->interes;
               echo $results->mes;
           }
       ?>
       ```
   
 * A ver si alguien lo hace funcionar, porque tengo que obtener información de la
   base de datos para pasarlo a campos en las paginas de wordpress y no puedo hacerlo
   sino consigo conectar con la sql externa.
    La base de datos contiene datos y 
   la consulta funciona si la hago solo en php con mysqli_connect, lo he probado.
   Pero aquí en WordPress nada.
    -  Esta respuesta fue modificada hace 6 años, 7 meses por [bigdatadestroy](https://es.wordpress.org/support/users/bigdatadestroy/).
 *  Moderador [almendron](https://es.wordpress.org/support/users/almendron/)
 * (@almendron)
 * [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12172223)
 * A ver si te sirve: [https://andres-dev.com/utilizando-la-clase-wpdb-de-wordpress/](https://andres-dev.com/utilizando-la-clase-wpdb-de-wordpress/)

Viendo 10 respuestas - de la 1 a la 10 (de un total de 10)

 El debate ‘Conectar a base de datos MySQL externa con php desde shortcode’ está
cerrado a nuevas respuestas.

 * En: [Plugins y Hacks](https://es.wordpress.org/support/forum/plugins-y-hacks/)
 * 10 respuestas
 * 3 participantes
 * Última respuesta de: [almendron](https://es.wordpress.org/support/users/almendron/)
 * Última actividad: [hace 6 años, 7 meses](https://es.wordpress.org/support/topic/conectar-a-base-de-datos-externa-con-php-desde-shortcode/#post-12172223)
 * Estado: sin resolver

## Debates

### Debates populares

### Debates sin respuestas

### Debates que no son soporte

### Debates resueltos

### Debates no resueltos

### Todos los debates
