web-dev-qa-db-fra.com

Requête à partir d'une base de données différente de celle par défaut

Je fais une mise en page pour une page wordpress.

La mise en page doit se connecter à une deuxième base de données (les deux bases de données appartiennent au même domaine).

Mais le problème est que, lorsque j’exécute uniquement le fichier, cela fonctionne. Mais quand j'ai inclus à l'intérieur de la mise en page wordpress je ne reçois pas de données, pas d'erreur, rien

Le script est juste:

 $con = mysql_connect('Host','user','pass');
 mysql_select_db('db', $con);
 $q = mysql_query('SELECT * FROM vars', $con);
 var_dump(mysql_fetch_array($q));

Comme je dis. Si j'exécute le fichier seul:

http://example.com/blog/connect.php

cela fonctionne très bien et renvoie des données.

Mais si je le fais à l'intérieur de la mise en page (créer une page wordpress et lui donner la mise en page), rien ne retourne.

Une idée de ce qui peut se passer là-bas?

1
nax

Je ne sais pas pourquoi mysql_connect ne fonctionne pas dans WordPress. Mais un moyen plus facile de le faire serait d’utiliser la classe $ wpdb . Essayez de remplacer votre code par ceci:

$second_db = new $wpdb( 'user', 'pass', 'dbname', 'Host' );
$q = $second_db->get_results( 'SELECT * FROM vars' );
var_dump( $q );

et voyez si vous obtenez les résultats souhaités. (notez que l'ordre des variables transmises au constructeur $wpdb est différent de celui utilisé par mysql_connect)

4
goldenapples

goldenapples a probablement la meilleure solution, mais pour répondre précisément à votre question, vous devez définir le paramètre new_link dans la fonction mysql_connect sur true.

 $con = mysql_connect('Host','user','pass', true);
0
Shane