$this->db = @mysql_connect($host, $user, $pwd) or $connecte = false;
if ($connecte == true){
$this->dbName = $db;
@mysql_select_db($db);
}
}
Le pb est que lorsque la connection échoue, je voudrais non pas sortir
mais positionner un flag.
Ainsi, le script appelant détecte que le flag est faux et que la
connection à la DB a échoué et peut afficher un msg personalisé genre
revenez plus tard, DB down plutot que "Can't establish socket
connection....." qui est pas vraiment user-friendly.
Mon pb est que malgré l'usage de "@" pour dire "chut" :), il crie malgré
tout ;(
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
loufoque
Tu peux retourner une constante qui indiquerait le type d'erreur et après ce serait au script appelant de l'interpréter. Le plus simple dans ce cas ce serait d'utiliser les exceptions.
Tu peux retourner une constante qui indiquerait le type d'erreur et
après ce serait au script appelant de l'interpréter.
Le plus simple dans ce cas ce serait d'utiliser les exceptions.
Tu peux retourner une constante qui indiquerait le type d'erreur et après ce serait au script appelant de l'interpréter. Le plus simple dans ce cas ce serait d'utiliser les exceptions.
Jean-Marc Molina
Bonjour,
$this->db = @mysql_connect($host, $user, $pwd) or $connecte = false;
C'est quoi cette horreur ??? ^^.
Si la fonction mysql_connect échoue, elle retourne FALSE, comme indiqué dans le manuel. Tu dois donc simplement tester $this->db et non pas faire un « or $connecte = false ». Ca rend le code plus qu'illisible qu'autre chose en plus de combiner les instructions sur une même ligne.
Le pb est que lorsque la connection échoue, je voudrais non pas sortir mais positionner un flag.
Tu peux proposer des fonctions Lire_numéro_dernière_erreur et Lire_message_dernière_erreur par exemple. C'est ce propose les fonctions mysql et d'autres bibliothèques. Tout comme mysql_connect tu devrais donc retourner FALSE si la fonction échoue et TRUE si tout s'est bien passé. Si la fonction retourne FALSE alors on utiliser les fonctions Lire_*_erreur.
if ($connecte == true){
Et la valeur de $connecte a été fixé dans quelle sphère ? ^^. Elle est seulement fixée si la fonction échoue, à FALSE donc.
@mysql_select_db($db);
Toujours tester la valeur de retour des fonctions, TRUE ou FALSE... Surtout quand on utilise l'opérateur @.
JM
Bonjour,
$this->db = @mysql_connect($host, $user, $pwd) or $connecte = false;
C'est quoi cette horreur ??? ^^.
Si la fonction mysql_connect échoue, elle retourne FALSE, comme indiqué dans
le manuel. Tu dois donc simplement tester $this->db et non pas faire un « or
$connecte = false ». Ca rend le code plus qu'illisible qu'autre chose en
plus de combiner les instructions sur une même ligne.
Le pb est que lorsque la connection échoue, je voudrais non pas sortir
mais positionner un flag.
Tu peux proposer des fonctions Lire_numéro_dernière_erreur et
Lire_message_dernière_erreur par exemple. C'est ce propose les fonctions
mysql et d'autres bibliothèques. Tout comme mysql_connect tu devrais donc
retourner FALSE si la fonction échoue et TRUE si tout s'est bien passé. Si
la fonction retourne FALSE alors on utiliser les fonctions Lire_*_erreur.
if ($connecte == true){
Et la valeur de $connecte a été fixé dans quelle sphère ? ^^. Elle est
seulement fixée si la fonction échoue, à FALSE donc.
@mysql_select_db($db);
Toujours tester la valeur de retour des fonctions, TRUE ou FALSE... Surtout
quand on utilise l'opérateur @.
$this->db = @mysql_connect($host, $user, $pwd) or $connecte = false;
C'est quoi cette horreur ??? ^^.
Si la fonction mysql_connect échoue, elle retourne FALSE, comme indiqué dans le manuel. Tu dois donc simplement tester $this->db et non pas faire un « or $connecte = false ». Ca rend le code plus qu'illisible qu'autre chose en plus de combiner les instructions sur une même ligne.
Le pb est que lorsque la connection échoue, je voudrais non pas sortir mais positionner un flag.
Tu peux proposer des fonctions Lire_numéro_dernière_erreur et Lire_message_dernière_erreur par exemple. C'est ce propose les fonctions mysql et d'autres bibliothèques. Tout comme mysql_connect tu devrais donc retourner FALSE si la fonction échoue et TRUE si tout s'est bien passé. Si la fonction retourne FALSE alors on utiliser les fonctions Lire_*_erreur.
if ($connecte == true){
Et la valeur de $connecte a été fixé dans quelle sphère ? ^^. Elle est seulement fixée si la fonction échoue, à FALSE donc.
@mysql_select_db($db);
Toujours tester la valeur de retour des fonctions, TRUE ou FALSE... Surtout quand on utilise l'opérateur @.
JM
charly
ah, oui, j'avais oublié que la fonction mysql_connect pouvait me renvoyer false, tout simplement !!! honte à moi ! Merci pour le rappel qui tombe à point nommé !
ah, oui, j'avais oublié que la fonction mysql_connect pouvait me
renvoyer false, tout simplement !!!
honte à moi !
Merci pour le rappel qui tombe à point nommé !
ah, oui, j'avais oublié que la fonction mysql_connect pouvait me renvoyer false, tout simplement !!! honte à moi ! Merci pour le rappel qui tombe à point nommé !
John Gallet
Bonsoir,
Ainsi, le script appelant détecte que le flag est faux et que la connection à la DB a échoué et peut afficher un msg personalisé genre revenez plus tard, DB down plutot que "Can't establish socket connection....." qui est pas vraiment user-friendly.
Si de toutes façons : 1) tu ne peux pas bosser sans bases de données 2) le message est toujours le même alors il y a beaucoup plus simple et qui évite de systématiquement s'emmerder à gérer les erreurs/exceptions dans l'appelant (souvenons nous d'Ariane V...)
function .... { $db=@mysql_connect(...); if($db=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); $sel=@mysql_selectdb(...); if($sel=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); } // end func
Ca marche très bien et quand tu reviens de l'appel de la fonction/méthode, tu ne te poses pas la question de savoir si ça s'est bien passé ou pas.
a++ JG
Bonsoir,
Ainsi, le script appelant détecte que le flag est faux et que la
connection à la DB a échoué et peut afficher un msg personalisé genre
revenez plus tard, DB down plutot que "Can't establish socket
connection....." qui est pas vraiment user-friendly.
Si de toutes façons :
1) tu ne peux pas bosser sans bases de données
2) le message est toujours le même
alors il y a beaucoup plus simple et qui évite de systématiquement
s'emmerder à gérer les erreurs/exceptions dans l'appelant (souvenons
nous d'Ariane V...)
function ....
{
$db=@mysql_connect(...);
if($db=úLSE)
exit(include('toutes_nos_excuses_les_plus_plates.html'));
$sel=@mysql_selectdb(...);
if($sel=úLSE)
exit(include('toutes_nos_excuses_les_plus_plates.html'));
} // end func
Ca marche très bien et quand tu reviens de l'appel de la
fonction/méthode, tu ne te poses pas la question de savoir si ça s'est
bien passé ou pas.
Ainsi, le script appelant détecte que le flag est faux et que la connection à la DB a échoué et peut afficher un msg personalisé genre revenez plus tard, DB down plutot que "Can't establish socket connection....." qui est pas vraiment user-friendly.
Si de toutes façons : 1) tu ne peux pas bosser sans bases de données 2) le message est toujours le même alors il y a beaucoup plus simple et qui évite de systématiquement s'emmerder à gérer les erreurs/exceptions dans l'appelant (souvenons nous d'Ariane V...)
function .... { $db=@mysql_connect(...); if($db=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); $sel=@mysql_selectdb(...); if($sel=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); } // end func
Ca marche très bien et quand tu reviens de l'appel de la fonction/méthode, tu ne te poses pas la question de savoir si ça s'est bien passé ou pas.
a++ JG
Stephane Thomas
John Gallet wrote:
Bonsoir,
function .... { $db=@mysql_connect(...); if($db=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); $sel=@mysql_selectdb(...); if($sel=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); } // end func
Ca marche très bien et quand tu reviens de l'appel de la fonction/méthode, tu ne te poses pas la question de savoir si ça s'est bien passé ou pas.
Moi je mettrais pluôt ça :
function connect_db ($base) { $host="localhost"; $user="bidule"; $password="dsjfyhuisdy"; mysql_connect($host,$user,$password) or die ("Erreur de connexion au serveur"); mysql_select_db($base) or die ("Erreur de connexion à la base de données"); return $bdd; }
Ya un truc que j'ai pas compris ?
Stef
John Gallet wrote:
Bonsoir,
function ....
{
$db=@mysql_connect(...);
if($db=úLSE)
exit(include('toutes_nos_excuses_les_plus_plates.html'));
$sel=@mysql_selectdb(...);
if($sel=úLSE)
exit(include('toutes_nos_excuses_les_plus_plates.html'));
} // end func
Ca marche très bien et quand tu reviens de l'appel de la
fonction/méthode, tu ne te poses pas la question de savoir si ça s'est
bien passé ou pas.
Moi je mettrais pluôt ça :
function connect_db ($base)
{
$host="localhost";
$user="bidule";
$password="dsjfyhuisdy";
mysql_connect($host,$user,$password) or die ("Erreur de connexion au
serveur");
mysql_select_db($base) or die ("Erreur de connexion à la base de données");
return $bdd;
}
function .... { $db=@mysql_connect(...); if($db=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); $sel=@mysql_selectdb(...); if($sel=úLSE) exit(include('toutes_nos_excuses_les_plus_plates.html')); } // end func
Ca marche très bien et quand tu reviens de l'appel de la fonction/méthode, tu ne te poses pas la question de savoir si ça s'est bien passé ou pas.
Moi je mettrais pluôt ça :
function connect_db ($base) { $host="localhost"; $user="bidule"; $password="dsjfyhuisdy"; mysql_connect($host,$user,$password) or die ("Erreur de connexion au serveur"); mysql_select_db($base) or die ("Erreur de connexion à la base de données"); return $bdd; }
Ya un truc que j'ai pas compris ?
Stef
John Gallet
mysql_connect($host,$user,$password) or die ("Erreur de connexion au serveur"); mysql_select_db($base) or die ("Erreur de connexion à la base de données"); Ya un truc que j'ai pas compris ?
Oui : qu'il n'est pas plus élégant pour l'internaute d'avoir "Connection Failed" que "Erreur de connexion". Mais algorithmiquement nous avons écrit rigoureusement la même chose : si la connexion echoue, fin brutale.
a++ JG
mysql_connect($host,$user,$password) or die ("Erreur de connexion au
serveur");
mysql_select_db($base) or die ("Erreur de connexion à la base de données");
Ya un truc que j'ai pas compris ?
Oui : qu'il n'est pas plus élégant pour l'internaute d'avoir "Connection
Failed" que "Erreur de connexion". Mais algorithmiquement nous avons
écrit rigoureusement la même chose : si la connexion echoue, fin brutale.
mysql_connect($host,$user,$password) or die ("Erreur de connexion au serveur"); mysql_select_db($base) or die ("Erreur de connexion à la base de données"); Ya un truc que j'ai pas compris ?
Oui : qu'il n'est pas plus élégant pour l'internaute d'avoir "Connection Failed" que "Erreur de connexion". Mais algorithmiquement nous avons écrit rigoureusement la même chose : si la connexion echoue, fin brutale.