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

patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

8 réponses

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
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
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
titus
 
tu peux aussi faire <?php echo phpinfo(); ?>
0
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
Mais qu'est ce que ça veut dire instancier ?
0
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
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
comment ça appeler le driver PDO ?
0
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
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
patatouf Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord, merci !
0