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

Fermé
patatouf Messages postés 26 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012 - 3 juin 2012 à 20:23
patatouf Messages postés 26 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012 - 6 juin 2012 à 20:21
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

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 mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012
6 juin 2012 à 18:45
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 vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
6 juin 2012 à 19:15
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 vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
6 juin 2012 à 19:19
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
tu peux aussi faire <?php echo phpinfo(); ?>
0
patatouf Messages postés 26 Date d'inscription mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012
Modifié par patatouf le 6/06/2012 à 19:49
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 vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
Modifié par aladin07 le 6/06/2012 à 19:54
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 mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012
6 juin 2012 à 19:58
Mais qu'est ce que ça veut dire instancier ?
0
aladin07 Messages postés 277 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
6 juin 2012 à 20:00
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 mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012
6 juin 2012 à 20:02
comment ça appeler le driver PDO ?
0
aladin07 Messages postés 277 Date d'inscription vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
Modifié par aladin07 le 6/06/2012 à 20:10
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 mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012
6 juin 2012 à 20:14
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 vendredi 13 avril 2012 Statut Membre Dernière intervention 30 septembre 2012 30
6 juin 2012 à 20:16
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 mercredi 23 mai 2012 Statut Membre Dernière intervention 29 décembre 2012
6 juin 2012 à 20:21
D'accord, merci !
0