Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1432 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Tester si un evariable est bien une connexion Mysql ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu] Tester si un evariable est bien une connexion Mysql ?

n°2333332
enuma
Posté le 09-05-2019 à 20:41:42  profilanswer
 

Bonsoir,
 
Mon problème est simple : j'ai dans un fichier php des fonctions qui ont besoin d'une connexion mysql.  Je dois donc passer cette connexion dans une variable $connect, en argument de ma fonction.
 
Par contre, j'aimerais m'assurer (notamment à cause de présence de variables optionnelles qui peuvent faire que ma fonction est appelée avec 2 arguments au lieu de 4) que la première variable que je file en argument (non optionnelle elle, et destinée à être la connexion Mysql) est BIEN une connexion mysql, et pas un entier, parce que sinon le script s'exécute "normalement", sans erreur, et évidemment si l'objet donné en argument de la fonction est un entier ou n'importe quoi, ça ne marche pas du tout. Mais je n'ai pas d'erreur !
 
Comment faire pour tester en début de fonction si la variable $connect est bien une connexion mysql ? Je pensais m'en sortir avec gettype, mais cette dernière ne renvoie que "object", ce qui ne suffit pas (si le hasard fait que je l'appelle avec un autre objet, mon test ne le verra pas...)
 
Merci d'avance ! :jap:


Message édité par enuma le 10-05-2019 à 00:02:47
mood
Publicité
Posté le 09-05-2019 à 20:41:42  profilanswer
 

n°2333338
pluj
Posté le 09-05-2019 à 23:59:09  profilanswer
 

Lu,
 
le truc c'est que tu ne précises pas quelle extension tu utilises (PDO vs mysql - dépréciée/obsolète - vs mysqli).
 
Ensuite, il ne faut pas oublier que PHP dispose du type hinting (depuis PHP 5) sur les paramètres de fonction/méthode donc avec PDO et mysqli, vu que les connexions sont des instances, c'est facile à faire :
 
PDO :

Code :
  1. function truc(PDO $connexion, ...)


 
mysqli :

Code :
  1. function truc(mysqli $connexion, ...)


 
Si vraiment le typehinting n'est pas possible (paramètres "libres" ), il existe l'opérateur instanceof.
 
Et pour PDO, si tu voulais vraiment aller jusqu'à savoir que c'est bien une connexion MySQL et non PostgreSQL, SQLite, etc, un PDO::getAttribute(PDO::ATTR_DRIVER_NAME) devrait renvoyer le nom du pilote utilisé.


Message édité par pluj le 10-05-2019 à 00:02:40
n°2333339
enuma
Posté le 10-05-2019 à 00:00:47  profilanswer
 

ah mais c'est cool ça, je ne savais pas qu'on pouvait faire ça ! Je suis sous PHP 7 et j'utilise mysqli, donc ce que tu me proposes me semble parfait ! Je vais tester tout de suite, merci.

 

Edit : c'est parfait, merci :jap:


Message édité par enuma le 10-05-2019 à 00:02:38

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu] Tester si un evariable est bien une connexion Mysql ?

 

Sujets relatifs
Simple connexion FTP avec user et mdp KO[MySQL] - Sélectionner enregistrements qui ne sont pas ailleurs
[MySQL] Nombre de cours et exercices avec une seules requête[MySQL] temps fetching trop important
[MySQL] Plusieurs tables ou une seule grosse dans ce cas?Tester si la chaine de caractère mène a un dossier ou un fichier
Erreur connexion à la database[EXCEL / VBA] Connexion ADO et recordset "limité"
Bien placer la base de données sur PHPmyadminOut of memory - sql Oracle/php
Plus de sujets relatifs à : [résolu] Tester si un evariable est bien une connexion Mysql ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR