web-dev-qa-db-fra.com

Problème avec PDO MySQL

Au cours des deux derniers jours, j'ai eu l'erreur suivante:

Erreur fatale: constante de classe non définie 'MYSQL_ATTR_USE_BUFFERED_QUERY' dans /home/mydomain/public_html/drupal/includes/database/mysql/database.inc sur la ligne 46

Cela vient après que mon hébergement ait fait une mise à niveau et PHP est maintenant la version 5.2.17. D'après ce qu'ils m'ont dit, je pense que je dois activer une extension PDO MySQL dans php.ini. Le problème est que je suis sur un hébergement partagé et que je n'ai pas accès au fichier; mon hébergement a également dit qu'il ne pouvait pas le changer non plus. Mon info.php montre:

AOP

Prise en charge PDO activée
Pilotes PDO sqlite, sqlite2

pdo_sqlite
Pilote PDO pour SQLite 3.x activé
Version du module PECL (fournie) 1.0.1 $ Id: pdo_sqlite.c 293036 03-01-2010 09: 23: 27Z sebastian $
Bibliothèque SQLite 3.3.7

J'ai essayé de modifier le fichier .htaccess et/ou d'ajouter mon propre fichier php.ini au répertoire racine selon certaines suggestions que j'ai trouvées, mais rien de ce que j'ai essayé n'a encore fonctionné.

Quelqu'un peut-il suggérer quoi d'autre que je pourrais faire?

ÉDITER:

Encore une fois, j'ai demandé à l'hébergement d'activer l'extension PDO_MySQL et leur réponse a été qu'ils ne pouvaient pas, que cPanel (vers lequel ils ont migré de Plesk, provoquant tout ce problème) avait cette extension désactivée par défaut et la modifier affecterait leurs serveurs. Leur solution? Que je changerais ma programmation pour m'adapter à ces nouvelles fonctionnalités, que je ne saurais même pas comment faire. Ont-ils raison de demander que je fasse cela? Est-ce qu'il y a un autre moyen?

7
brunn

Votre hébergeur doit activer cette extension. Je ne pense pas que vous puissiez le faire dans un fichier php.ini local.

Je ne pense pas qu'ils ne puissent pas le faire, ils ont juste besoin d'ajouter une extension = pdo_mysql.so au php.ini, d'installer le paquet, en fonction de la configuration qu'ils utilisent. C'est leur travail de le faire, pdo_mysql est une exigence difficile pour Drupal 7.

8
Berdir

Dans mon cas, lorsque j'échange PHP dans WAMP, cette erreur m'a arrêté. J'ai vérifié mon phpinfo () puis j'ai observé que PDO est activé mais sa valeur est vide

Solution: allez dans votre fichier php.ini et trouvez "extension_dir" et changez son chemin vers le répertoire ext de php en cours de travail.

ex /: extension_dir = "c: /wamp/bin/php/php5.2.9/ext/"

Redémarrez votre wamp, il recommencera à fonctionner ....

0
Vikrant Ramteke