2011-02-10 22 views
5

He visto este error en muchos lugares, pero el caso exacto. Tengo este error al ejecutar la consola bake, exactamente después de elegir C "controlador" y luego elegir la configuración de base de datos predeterminadacómo solucionar este error "PHP Fatal error: Llamada a la función indefinida mysql_query()" en la consola cake hornear

estoy en Ubuntu 10.10 a través de VirtualBox estoy usando XAMPP - e instalado el cakephp a través de la comando apt-get install cakephp

aquí es el error

Use Database Config: (default/test) 
[default] > 
PHP Fatal error: Call to undefined function mysql_query() in /usr/share/php/cake/libs/model/datasources/dbo/dbo_mysql.php on line 588 

Fatal error: Call to undefined function mysql_query() in /usr/share/php/cake/libs/model/datasources/dbo/dbo_mysql.php on line 588 
+2

El error que está citando en el título es diferente al que está en el cuerpo. –

+0

tienes razón ... pegué el código equivocado ... gracias – msheshtawy

+0

Parece que no tienes la extensión mysql activada en PHP. Debería haber una línea (comentada) en 'php.ini' que lo activa –

Respuesta

4

su tema es más que probable que algunas distribuciones de Linux tienen diferentes de php.ini para Apache y PHP y PHP-CLI, parece que su PHP -CLI (qué cake baker usará) no tiene la función mysql_ * ons habilitados.

Para solucionarlo, deberá ubicar el php.ini para la CLI de PHP y descomentar la línea que incluye la mysql_ * lib. debería ser algo así como "extension = mysql.so". Para encontrar la ubicación de php.ini, ejecute php -r 'phpinfo();' en la línea de comandos y desplácese hasta la parte superior para ver la ubicación de php.ini.

+0

y la solución es? – msheshtawy

+0

¡Respuesta actualizada! – Dunhamzzz

+0

@Dunhamzzz, ¿por qué no simplemente 'php --ini' en lugar de' php -r 'phpinfo();''? – Pacerier

-1

Utilicé Ubuntu 10.04 y 11.04 y me enfrenté al mismo obstáculo que ha sido molesto por bastante tiempo, ya que quiero usar hornear para ciertas soluciones.

solucionarlo puede abrir un terminal y escriba aquí:

php -i | grep 'Configuration File' 

que produce algo como esto:

Configuration File (php.ini) Path => /usr/local/lib

Bueno y bastante sorprendentemente esto no es la ruta predeterminada para mantener usted php.ini archivo, es más bien /etc/php5/cli/

Ahora usted puede simplemente copiar su php.ini en /usr/local/lib o vea cómo solucionar la ruta del archivo de configuración.

Supongo que tiene php5-pgsql (usando postgres) o php5-mysql (usando MySql) instalado. De lo contrario, es posible definir la ruta de archivo de configuración en modo alguno

1

reinstalar hizo el truco para mí:

sudo apt-get remove php5-common 
sudo apt-get install --reinstall php5-mysql 
sudo apt-get install --reinstall php5-cli 

(nota: la mía era no un php en vivo o un sistema crítico instalo - Yo sólo estaba tratando para que phpsh funcione con algún código mysql. ymmv.)

0

Otra cosa que la gente suele perder es establecer la ruta del directorio de extensión.

Por ejemplo, mire el archivo ini en another thread. Ya había comentado la línea extension=php_mysql.dll pero no había configurado el extension_dir apropiado.

Usted necesita esta línea que se va sin comentar o añadido en:

extension_dir = "ext" 

donde ext es la ruta de acceso al directorio de la extensión.

Cuestiones relacionadas