je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables
de 2 bases) situées sur le même serveur mais avec des paramètres
(utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas
arrivé. Mais d'abord est-ce possible ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sebastian Lauwers
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire d'un script php tente d'accéder à la base de données avec le nom d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql) autorise les connexions fantomes.
Amicalement, Sebastian
-- The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. --Nathaniel Borenstein
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables
de 2 bases) situées sur le même serveur mais avec des paramètres
(utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas
arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que
l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire
d'un script php tente d'accéder à la base de données avec le nom
d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql)
autorise les connexions fantomes.
Amicalement,
Sebastian
--
The most likely way for the world to be destroyed,
most experts agree, is by accident.
That's where we come in; we're computer professionals.
We cause accidents.
--Nathaniel Borenstein
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire d'un script php tente d'accéder à la base de données avec le nom d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql) autorise les connexions fantomes.
Amicalement, Sebastian
-- The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. --Nathaniel Borenstein
John Gallet
Bonjour,
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Ok.
Pour l'instant, je n'y suis pas arrivé. C'est partiellement pas de ta faute.
Mais d'abord est-ce possible ? Oui, évidemment, c'est un besoin ultra classique.
Il suffit d'utiliser dans toutes les fonctions mysql_select_db, _query, _errno(), etc... l'identifiant de connexion renvoyé par mysql_connect. Par exemple :
$dad1=mysql_connect(paramètres serveur1); if($dad1=úLSE) exit(...); $dad2=mysql_connect(paramètres serveur 2); if($dad2=úLSE) exit(...); $sel=mysql_select_db("base1",$dad1); // obligatoire de préciser sinon c'est $dad2 qui est utilisé if($sel=úLSE) exit(...); $sel=mysql_select_db("base2",$dad2); // facultatif, mais préférable pour s'y retrouver
Où je dis que c'est "partiellement" de ta faute c'est que tu aurais dû voir ça dans le manuel, mais comme la promotion systématique de l'assistanat fait que depuis une certaine version de php4 (je ne sais plus laquelle) quand on ne passe pas l'identifiant, ça marche quand même, plus personne ne se pose plus les bonnes questions et le manuel lui même présente parfois seulement la version simplifiée.
<remarque générale adressée à tout le monde et personne> Bref, utilisez systématiquement le retour de mysql_connect() dans tous vos scripts, ça vous permettra de comprendre ce que vous faites, de comprendre la portée des variables, et quand vous aurez besoin de vous connecter à deux bases, le problème ne se posera pas. </remarque>
Le seul cas pénible concerne le besoin de se connecter avec le même utilisateur, sur deux bases différentes, sur le même serveur, avec une version de php un peu ancienne ne permettant pas de forcer mysql_connect() à ouvrir un nouveau lien. On est alors obligé de faire systématiquement un select_db() entre toute les requêtes, ou de tricher en spécifiant le port d'écoute de mysql dans l'ouverture de l'un des deux mysql_connect().
HTH JG
Bonjour,
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables
de 2 bases) situées sur le même serveur mais avec des paramètres
(utilisateur et mot de passe) différents.
Ok.
Pour l'instant, je n'y suis pas arrivé.
C'est partiellement pas de ta faute.
Mais d'abord est-ce possible ?
Oui, évidemment, c'est un besoin ultra classique.
Il suffit d'utiliser dans toutes les fonctions mysql_select_db, _query,
_errno(), etc... l'identifiant de connexion renvoyé par mysql_connect.
Par exemple :
$dad1=mysql_connect(paramètres serveur1);
if($dad1=úLSE) exit(...);
$dad2=mysql_connect(paramètres serveur 2);
if($dad2=úLSE) exit(...);
$sel=mysql_select_db("base1",$dad1); // obligatoire de préciser sinon
c'est $dad2 qui est utilisé
if($sel=úLSE) exit(...);
$sel=mysql_select_db("base2",$dad2); // facultatif, mais préférable pour
s'y retrouver
Où je dis que c'est "partiellement" de ta faute c'est que tu aurais dû
voir ça dans le manuel, mais comme la promotion systématique de
l'assistanat fait que depuis une certaine version de php4 (je ne sais
plus laquelle) quand on ne passe pas l'identifiant, ça marche quand
même, plus personne ne se pose plus les bonnes questions et le manuel
lui même présente parfois seulement la version simplifiée.
<remarque générale adressée à tout le monde et personne>
Bref, utilisez systématiquement le retour de mysql_connect() dans tous
vos scripts, ça vous permettra de comprendre ce que vous faites, de
comprendre la portée des variables, et quand vous aurez besoin de vous
connecter à deux bases, le problème ne se posera pas.
</remarque>
Le seul cas pénible concerne le besoin de se connecter avec le même
utilisateur, sur deux bases différentes, sur le même serveur, avec une
version de php un peu ancienne ne permettant pas de forcer
mysql_connect() à ouvrir un nouveau lien. On est alors obligé de faire
systématiquement un select_db() entre toute les requêtes, ou de tricher
en spécifiant le port d'écoute de mysql dans l'ouverture de l'un des
deux mysql_connect().
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Ok.
Pour l'instant, je n'y suis pas arrivé. C'est partiellement pas de ta faute.
Mais d'abord est-ce possible ? Oui, évidemment, c'est un besoin ultra classique.
Il suffit d'utiliser dans toutes les fonctions mysql_select_db, _query, _errno(), etc... l'identifiant de connexion renvoyé par mysql_connect. Par exemple :
$dad1=mysql_connect(paramètres serveur1); if($dad1=úLSE) exit(...); $dad2=mysql_connect(paramètres serveur 2); if($dad2=úLSE) exit(...); $sel=mysql_select_db("base1",$dad1); // obligatoire de préciser sinon c'est $dad2 qui est utilisé if($sel=úLSE) exit(...); $sel=mysql_select_db("base2",$dad2); // facultatif, mais préférable pour s'y retrouver
Où je dis que c'est "partiellement" de ta faute c'est que tu aurais dû voir ça dans le manuel, mais comme la promotion systématique de l'assistanat fait que depuis une certaine version de php4 (je ne sais plus laquelle) quand on ne passe pas l'identifiant, ça marche quand même, plus personne ne se pose plus les bonnes questions et le manuel lui même présente parfois seulement la version simplifiée.
<remarque générale adressée à tout le monde et personne> Bref, utilisez systématiquement le retour de mysql_connect() dans tous vos scripts, ça vous permettra de comprendre ce que vous faites, de comprendre la portée des variables, et quand vous aurez besoin de vous connecter à deux bases, le problème ne se posera pas. </remarque>
Le seul cas pénible concerne le besoin de se connecter avec le même utilisateur, sur deux bases différentes, sur le même serveur, avec une version de php un peu ancienne ne permettant pas de forcer mysql_connect() à ouvrir un nouveau lien. On est alors obligé de faire systématiquement un select_db() entre toute les requêtes, ou de tricher en spécifiant le port d'écoute de mysql dans l'ouverture de l'un des deux mysql_connect().
HTH JG
Sebastian Lauwers
Bon bha je me tais après ce qu'a mis John.
Sebastian Lauwers wrote:
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire d'un script php tente d'accéder à la base de données avec le nom d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql) autorise les connexions fantomes.
Amicalement, Sebastian
-- The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. --Nathaniel Borenstein
Bon bha je me tais après ce qu'a mis John.
Sebastian Lauwers wrote:
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2
tables
de 2 bases) situées sur le même serveur mais avec des paramètres
(utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas
arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que
l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire
d'un script php tente d'accéder à la base de données avec le nom
d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql)
autorise les connexions fantomes.
Amicalement,
Sebastian
--
The most likely way for the world to be destroyed,
most experts agree, is by accident.
That's where we come in; we're computer professionals.
We cause accidents.
--Nathaniel Borenstein
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire d'un script php tente d'accéder à la base de données avec le nom d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql) autorise les connexions fantomes.
Amicalement, Sebastian
-- The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents. --Nathaniel Borenstein
John Gallet
Bon bha je me tais après ce qu'a mis John
Je ne vois pas pourquoi. Je parlais de la possiblité technique de le faire en php, tu parlais des restrictions pouvant être mises en place par des hébergeurs, ce à quoi je n'avais pas du tout pensé (réflexe "m'en fous j'ai mon serveur" qui n'est pas nécessairement approprié).
Les deux réponses sont donc tout à fait complémentaires.
JG
Bon bha je me tais après ce qu'a mis John
Je ne vois pas pourquoi. Je parlais de la possiblité technique de le
faire en php, tu parlais des restrictions pouvant être mises en place
par des hébergeurs, ce à quoi je n'avais pas du tout pensé (réflexe
"m'en fous j'ai mon serveur" qui n'est pas nécessairement approprié).
Les deux réponses sont donc tout à fait complémentaires.
Je ne vois pas pourquoi. Je parlais de la possiblité technique de le faire en php, tu parlais des restrictions pouvant être mises en place par des hébergeurs, ce à quoi je n'avais pas du tout pensé (réflexe "m'en fous j'ai mon serveur" qui n'est pas nécessairement approprié).
Les deux réponses sont donc tout à fait complémentaires.
JG
bcnl
Merci pour ces 2 réponses. Mais petite précision je peux me connecter à mes 2 bases dans le même script, le serveur ne l'interdit pas. ce que je n'arrive pas à faire c'est une requete avec une jointure entre ces 2 bases du genre :
SELECT * FROM base1.table1 INNER JOIN base2.table2 USING(Id)
J'ai droit alors à un message d'erreur qui me signale que l'utilisateur de la base 1 n'a pas les droits d'accès à la base 2 (ou le contraire suivant le dernier mysql.connect exécuté).
Sebastian Lauwers wrote in message news:<cclt6i$pq3$...
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire d'un script php tente d'accéder à la base de données avec le nom d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql) autorise les connexions fantomes.
Amicalement, Sebastian
Merci pour ces 2 réponses. Mais petite précision je peux me connecter
à mes 2 bases dans le même script, le serveur ne l'interdit pas. ce
que je n'arrive pas à faire c'est une requete avec une jointure entre
ces 2 bases du genre :
SELECT * FROM base1.table1 INNER JOIN base2.table2 USING(Id)
J'ai droit alors à un message d'erreur qui me signale que
l'utilisateur de la base 1 n'a pas les droits d'accès à la base 2 (ou
le contraire suivant le dernier mysql.connect exécuté).
Sebastian Lauwers <dacrashanddie@9online.fr> wrote in message news:<cclt6i$pq3$1@apollon.grec.isp.9tel.net>...
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables
de 2 bases) situées sur le même serveur mais avec des paramètres
(utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas
arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que
l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire
d'un script php tente d'accéder à la base de données avec le nom
d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql)
autorise les connexions fantomes.
Merci pour ces 2 réponses. Mais petite précision je peux me connecter à mes 2 bases dans le même script, le serveur ne l'interdit pas. ce que je n'arrive pas à faire c'est une requete avec une jointure entre ces 2 bases du genre :
SELECT * FROM base1.table1 INNER JOIN base2.table2 USING(Id)
J'ai droit alors à un message d'erreur qui me signale que l'utilisateur de la base 1 n'a pas les droits d'accès à la base 2 (ou le contraire suivant le dernier mysql.connect exécuté).
Sebastian Lauwers wrote in message news:<cclt6i$pq3$...
bcnl wrote:
je voudrais faire une requête interrogeant 2 bases (plus exactement 2 tables de 2 bases) situées sur le même serveur mais avec des paramètres (utilisateur et mot de passe) différents. Pour l'instant, je n'y suis pas arrivé. Mais d'abord est-ce possible ?
Cela dépend, certains hébergeurs (e.g.: free et online) empêchent que l'on accède à une bdd d'un compte avec un autre compte.
Exemple: Si le compte ftp est toto et que ce compte par l'intermédiaire d'un script php tente d'accéder à la base de données avec le nom d'utilisateur toto2, le server mysql en interdira l'accès.
Il faut voir maintenant si ton hébergeur (ou plutot le serveur mysql) autorise les connexions fantomes.
Amicalement, Sebastian
John Gallet
Bonjour,
que je n'arrive pas à faire c'est une requete avec une jointure entre ces 2 bases du genre :
SELECT * FROM base1.table1 INNER JOIN base2.table2 USING(Id)
J'ai droit alors à un message d'erreur qui me signale que l'utilisateur de la base 1 n'a pas les droits d'accès à la base 2 (ou le contraire suivant le dernier mysql.connect exécuté)
Là on est clairement hors de php et dans un problème de droits sgbdr : direction fr.comp.applications.sgbd NB : les jointures entre deux bases différentes, c'est clairement le bordel à gérer et si c'est sur deux serveurs différents, sauf à disposer de mécanismes ultra spécifiques comme il peut en exister (de mémoire) sous Oracle, les perfs sont dégueulasses (si ça marche tout court).
a++ JG
Bonjour,
que je n'arrive pas à faire c'est une requete avec une jointure entre
ces 2 bases du genre :
SELECT * FROM base1.table1 INNER JOIN base2.table2 USING(Id)
J'ai droit alors à un message d'erreur qui me signale que
l'utilisateur de la base 1 n'a pas les droits d'accès à la base 2 (ou
le contraire suivant le dernier mysql.connect exécuté)
Là on est clairement hors de php et dans un problème de droits sgbdr :
direction fr.comp.applications.sgbd
NB : les jointures entre deux bases différentes, c'est clairement le bordel
à gérer et si c'est sur deux serveurs différents, sauf à disposer de
mécanismes ultra spécifiques comme il peut en exister (de mémoire) sous
Oracle, les perfs sont dégueulasses (si ça marche tout court).
que je n'arrive pas à faire c'est une requete avec une jointure entre ces 2 bases du genre :
SELECT * FROM base1.table1 INNER JOIN base2.table2 USING(Id)
J'ai droit alors à un message d'erreur qui me signale que l'utilisateur de la base 1 n'a pas les droits d'accès à la base 2 (ou le contraire suivant le dernier mysql.connect exécuté)
Là on est clairement hors de php et dans un problème de droits sgbdr : direction fr.comp.applications.sgbd NB : les jointures entre deux bases différentes, c'est clairement le bordel à gérer et si c'est sur deux serveurs différents, sauf à disposer de mécanismes ultra spécifiques comme il peut en exister (de mémoire) sous Oracle, les perfs sont dégueulasses (si ça marche tout court).
a++ JG
bcnl
Donc ça n'a pas l'air faisable directement. Et quelles sont les solutions paliatives ?
création d'une table temporaire par exemple...
John Gallet wrote in message news:<40efb7dc$0$29380> Là on est clairement hors de php et dans un problème de droits sgbdr :
direction fr.comp.applications.sgbd NB : les jointures entre deux bases différentes, c'est clairement le bordel à gérer et si c'est sur deux serveurs différents, sauf à disposer de mécanismes ultra spécifiques comme il peut en exister (de mémoire) sous Oracle, les perfs sont dégueulasses (si ça marche tout court).
a++ JG
Donc ça n'a pas l'air faisable directement. Et quelles sont les
solutions paliatives ?
création d'une table temporaire par exemple...
John Gallet <john.gallet@wanadoo.fr> wrote in message news:<40efb7dc$0$29380> Là on est clairement hors de php et dans un problème de droits sgbdr :
direction fr.comp.applications.sgbd
NB : les jointures entre deux bases différentes, c'est clairement le bordel
à gérer et si c'est sur deux serveurs différents, sauf à disposer de
mécanismes ultra spécifiques comme il peut en exister (de mémoire) sous
Oracle, les perfs sont dégueulasses (si ça marche tout court).
Donc ça n'a pas l'air faisable directement. Et quelles sont les solutions paliatives ?
création d'une table temporaire par exemple...
John Gallet wrote in message news:<40efb7dc$0$29380> Là on est clairement hors de php et dans un problème de droits sgbdr :
direction fr.comp.applications.sgbd NB : les jointures entre deux bases différentes, c'est clairement le bordel à gérer et si c'est sur deux serveurs différents, sauf à disposer de mécanismes ultra spécifiques comme il peut en exister (de mémoire) sous Oracle, les perfs sont dégueulasses (si ça marche tout court).
a++ JG
John Gallet
Donc ça n'a pas l'air faisable directement. Et quelles sont les solutions paliatives ?
De manière générale : réfléchir à un schéma de base de données cohérent.
Impossible de répondre dans l'absolu sans connaître exactement el besoin, et c'est un problème global de design, pas de php. Première question à se poser : ne peut-on pas regrouper les deux bases sur le même serveur.
a++ JG
Donc ça n'a pas l'air faisable directement. Et quelles sont les
solutions paliatives ?
De manière générale : réfléchir à un schéma de base de données cohérent.
Impossible de répondre dans l'absolu sans connaître exactement el besoin, et
c'est un problème global de design, pas de php. Première question à se poser
: ne peut-on pas regrouper les deux bases sur le même serveur.
Donc ça n'a pas l'air faisable directement. Et quelles sont les solutions paliatives ?
De manière générale : réfléchir à un schéma de base de données cohérent.
Impossible de répondre dans l'absolu sans connaître exactement el besoin, et c'est un problème global de design, pas de php. Première question à se poser : ne peut-on pas regrouper les deux bases sur le même serveur.
a++ JG
Leonick
"bcnl" a écrit dans le message de news:
Donc ça n'a pas l'air faisable directement. Et quelles sont les solutions paliatives ?
création d'une table temporaire par exemple...
Une réplication de table dans une des deux BdD ?
Leonick
"bcnl" <bcnl@netcourrier.com> a écrit dans le message de
news:c020865c.0407101045.32811433@posting.google.com...
Donc ça n'a pas l'air faisable directement. Et quelles sont les
solutions paliatives ?