[PHP] J'ai une question très simple ! Help !!

patatouf Messages postés 30 Statut Membre -  
patatouf Messages postés 30 Statut Membre -
Salut !

Je suis sous Mac et j'utilise MAMP. Je voudrais voir si le pdo est activé. Pour ça, je vais dans le fichier php.ini mais je ne trouve pas la ligne "extension=php_pdo_mysql.dll". Par contre j'ai vu cette ligne là : "extension=pdo_mysql.so".

Est ce que la ligne que je vous ai cité en dernier est la bonne ligne pour activer le PDO ?

Merci d'avance !

8 réponses

  1. Nosaj
     
    Vérifier dans ton dossier d'extensions (le dossier s'appelle "ext") si le fichier "pdo.so" est présent.
    Ensuite vérifier que les lignes suivantes sont présentes dans le php.ini :

    extension=pdo.so
    extension=pdo_pgsql.so
    extension=pdo_mysql.so

    Et question simple aussi :

    as-tu tout simplement essayé d'instancier une pdo?(je suppose que oui)

    Si ca marche -> PDO est activé sur MAMP
    Si ca marche pas -> télécharge le fichier pdo.so et ajoute les lignes que j'ai cité au dessus.
    0
  2. patatouf Messages postés 30 Statut Membre
     
    Salut,

    je ne trouve pas le dossier ext. J'ai par contre trouvé le dossier extension, qui ne contenait malheureusement pas pdo.so. Par contre il y avait d'autres fichiers qui ressemblait à ce que tu m'as dit.
    Voici un screenshot : https://i.imgur.com/E3nKs.png
    Au faite, dans le dossier extensions il y a un autre dossier appelé "no-debug-non-zts-20090626".

    Dans le fichier php.ini, il n'y avait pas les lignes que tu m'as citées. Il y avait ça par contre :
    ;extension=apc.so
    
    extension=imap.so
    extension=yaz.so
    extension=mcrypt.so
    extension=gettext.so
    extension=pgsql.so
    extension=pdo_pgsql.so
    extension=pdo_mysql.so


    Voilà, c'est tout.

    P.S.: Dans le code qui me permet de me connecter à ma BDD, j'ai fait un script qui écrit l'erreur sur ma page. Et ça me met ça : SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
    0
    1. aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
       
      Vérifie d'abord qu'il n'est pas instalé
      if (!defined('PDO::ATTR_DRIVER_NAME')) {
      echo 'PDO unavailable';
      }
      
      0
  3. aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
     
    Vérifie d'abord qu'il n'est pas installé
    if (!defined('PDO::ATTR_DRIVER_NAME')) { 
    echo 'PDO unavailable'; 
    } 
    


    du manuel php:
    PDO and the PDO_SQLITE driver is enabled by default as of PHP 5.1.0

    Si tu as PHP > 5.1.0 il est forcement installé, en plus tu utilise MAMP, je vois pas comment PDO ne pourrais pas être installé.
    0
    1. titus
       
      tu peux aussi faire <?php echo phpinfo(); ?>
      0
  4. patatouf Messages postés 30 Statut Membre
     
    J'ai essayé le code et ça ne me mettait rien. Donc c'est que PDO doit bien être installé. Mais c'est peut-être qu'il n'est pas activé.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
     
    Il est activé, essaie de l'instancier.

    try { 
        $conn = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password); 
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } catch(PDOException $e) { 
        echo 'ERREUR: ' . $e->getMessage(); 
    }
    0
  7. patatouf Messages postés 30 Statut Membre
     
    Mais qu'est ce que ça veut dire instancier ?
    0
    1. aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
       
      Et bien tu as vu le code que je viens e te donner, c'est de l'instanciation. Tu appel le driver PDO,
      new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
      0
    2. patatouf Messages postés 30 Statut Membre
       
      comment ça appeler le driver PDO ?
      0
    3. aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
       
      Et bien, PDO c'est un driver, un outil avec lequel tu peux te connecter à la base de donnés et retrouver les donnés. L'instancier c'est tout simplement l'utiliser
      0
    4. patatouf Messages postés 30 Statut Membre
       
      Ah mais quand tu l'instancifie, c'est quand tu vérifies si tu es bien connecté (enfin, si ton code a bien fonctionné) ?
      0
  8. aladin07 Messages postés 277 Date d'inscription   Statut Membre Dernière intervention   30
     
    Et bien voilà, PDO c'est un genre de class, les class sont instanciers avec
    include 'classname.php';
    $var = new ClassName();

    classname.php contiendra la class ClassName() qui contient des proprietés des fonctions par exemple:

    class Classname {
    function hello() {
    return "Hello World";
    }
    }

    Donc $var = new ClassName();
    echo $var->hello(); produira Hello World;

    La même chose avec le PDO, PDO c'est une class qui contient des fonctions (connect ...etc) que tu utilisera pour retrouver les donnés
    PDO est inclue dans PHP par default donc $pdo = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password); directement.

    J'éspère que ça t'aide un peu.
    Tiens moi au courant si tu veux en apprendre plus.
    0
  9. patatouf Messages postés 30 Statut Membre
     
    D'accord, merci !
    0