Pergunta

Do you have any idea on what might be causing this error in Drush w/ Drupal 7.2 (worked fine in Drupal 7.0)?

Fatal error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in /path/to/includes/database/mysql/database.inc on line 42
Drush command terminated abnormally due to an unrecoverable error. [error] Error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in /path/to/includes/database/mysql/database.inc, line 42

Line 42 of database.inc contains the following line:

PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => TRUE,

I thought this was related to PDO extension missing, but it is indeed installed.

Here is the output of drush -v -d status:

drush -d -v status
Bootstrap to phase 0. [0.03 sec, 1.28 MB] [bootstrap]
Drush bootstrap phase : _drush_bootstrap_drush() [0.03 sec, 1.41 MB] [bootstrap]
Drush bootstrap phase : _drush_bootstrap_drupal_root() [0.07 sec, 3.18 MB] [bootstrap]
Initialized Drupal 7.2 root directory at /path/to [0.09 sec, 4.06 MB] [notice]
Drush bootstrap phase : _drush_bootstrap_drupal_site() [0.09 sec, 4.06 MB] [bootstrap]
Initialized Drupal site default at sites/default [0.09 sec, 4.06 MB] [notice]
Drush bootstrap phase : _drush_bootstrap_drupal_configuration() [0.09 sec, 4.06 MB] [bootstrap]

Fatal error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in /path/to/includes/database/mysql/database.inc on line 42
Drush command terminated abnormally due to an unrecoverable error.                                                                                                                    [error]
Error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY' in /path/to/includes/database/mysql/database.inc, line 42 [0.1 sec, 4.56 MB]

EDIT:

phpinfo indicates that pdo, pdo_mysql are all installed. However, when I run

pecl remote-info pdo (and pdo-mysql), I get a (among others):

Installed - no -

So it appears that via the web requests, the extensions appear as installed, but not from the command line (same instance of php, v5.3). Is there a way to tell pecl what phpinfo already knows ... ?

Foi útil?

Solução

Ok, another one for the "learning experience" column:

I specified

DRUSH_PHP=/path/to/php

right before this line in drush wrapper script:

if [ ! -z "$DRUSH_PHP" ] ; then

Works now.

Thanks @kiamlaluno & @Berdir for your time and input. Hopefully this helps others.

KM

Outras dicas

You are most likely missing the pdo_mysql extension, which you also not, not only pdo and mysql/mysqli (that one is actually not necessary for Drupal 7, but is if you're also using Drupal 6 or other projects which use it).

You can see the enabled modules with:

php -m

Make sure it lists both PDO and PDO_mysql and if not, enable/install that.

There is an issue report on Drupal.org, Fatal error in D7 HEAD while running 'drush update', where the OP reports a similar error.
One user reports the error can be fixed when the php_pdo_mysql extension is installed; another user reports it is necessary to install php5-mysql, under Ubuntu 10.10.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a drupal.stackexchange
scroll top