solucion mysql_select_db mysql_query mysql_connect llamada grave función fatal error detectado definida php mysql apache

mysql_select_db - PHP/Apache: error fatal de PHP: llamada a la función no definida mysql_connect()



fatal error call to undefined function mysql_connect() solucion (7)

Tengo MySQL (5.5.23 servidor de comunidad), Apache (2.2) y PHP (5.3.13) ejecutándose en una máquina Fedora 15 (64 bits). Cada uno trabaja sin problemas por su cuenta.

Pensé que PHP se configuró / compiló para trabajar con MySQL, pero cuando intento cargar cualquier página PHP que hace una llamada MySQL, obtengo el error fatal mencionado anteriormente (en el registro de errores de Apache). PHP funciona bien por sí solo, a través de Apache y en la línea de comandos.

Cuando ejecuto php -i desde la línea de comandos, seguro que muestra todos los bits y piezas de MySQL, pero cuando cargo una página que muestra phpinfo (), entonces no se mencionan los módulos de MySQL.

También probé a no comentar "extension = mysql.so" en php.ini, pero PHP luego se queja con "PHP Startup: Imposible cargar la biblioteca dinámica ''/usr/lib64/php/modules/mysql.so''." (a pesar de que el módulo reside allí). Pero luego no estoy del todo seguro de si se requiere que esa línea no se comente o no. [Corrección: el error indicado se debió en realidad a un error tipográfico, pero ejecutar desde la línea de comandos muestra que el módulo ya está cargado de todos modos, hay una advertencia de PHP que dice que sí).

También he desactivado SELinux; paró / reinició Apache numerosas veces; yummed MySQL-Devel, en caso de que hiciera alguna diferencia; y, parece, cualquier otra cosa posible.

Si ejecuto un pequeño script de prueba PHP desde la línea de comandos, para acceder a la base de datos MySQL, funciona sin problemas, PHP sabe sobre MySQL, pero cuando se ejecuta bajo Apache, parece que no tiene ni idea de que MySQL existe.

He estado probando y desactivando durante meses para resolver este problema, y ​​parece que lo he intentado todo, pero nada parece funcionar.

No me importa tener que volver a instalar PHP si realmente tengo que hacerlo, si alguien puede demostrar la forma correcta de configurar / compilar con soporte MySQL, para que pueda hacer que funcione bajo Apache, aunque idealmente preferiría simplemente para hacer funcionar la instalación existente.

Muchas gracias de antemano por cualquier ayuda!


El mysql deamon debería estar ejecutándose.

Si no, prueba esto:

#/etc/init.d/mysql start

O esto:

#service mysqld start

Y si quieres agregar mysql en el arranque:

# chkconfig --add mysqld # chkconfig -- level 235 mysqld on

Si es así, y todavía no funciona, intente esto:

Descomente las siguientes líneas en /etc/php/php.ini

extension=mysqli.so extension=mysql.so

Y comprueba tu publicación anterior ''/usr/lib64/php/modules/msql.so'' . Debería ser mysql.so (si está mal escrito, ignóralo ...)


En caso de que alguien más se enfrente a esto, se trata de un caso de PHP que no tiene acceso a las bibliotecas del cliente mysql. Tener un servidor MySQL en el sistema no es la solución correcta. Solución para ubuntu (y PHP 5):

sudo apt-get install php5-mysql

Después de instalar el cliente, el servidor web debe reiniciarse. En caso de que esté usando apache, lo siguiente debería funcionar:

sudo service apache2 restart


La versión de PHP del módulo de Apache podría, por alguna extraña razón, no estar recogiendo el archivo php.ini como la versión CLI que sugeriría que le eche un vistazo:

  • Cualquier diferencia en los archivos .ini que difieren entre php -i y phpinfo() través de una página web *
  • Si no hay diferencias, entonces mira los permisos de mysql.so y los archivos .ini , pero creo que Apache los analiza como el usuario root

Para ser realmente claro aquí, no busque archivos php.ini en el sistema de archivos, eche un vistazo a lo que dice PHP que está mirando


Que tal si

sudo yum install php-mysql

o

sudo apt-get install php5-mysql


Recibí un mensaje de error similar. Creo que tecleé inadvertidamente "9o" al comienzo de la primera línea del archivo php.ini. Una vez que eliminé eso, ya no recibí los mensajes de "error fatal". Espero que esto ayude.


Tenga en cuenta que a partir de PHP 5.5.0 la función mysql_connect() está en desuso, y se elimina por completo en PHP 7

Se puede encontrar más información en la documentación de php :

Citar:

Advertencia
Esta extensión se desaprobó en PHP 5.5.0 y se eliminó en PHP 7.0.0. En su lugar, se debe usar la extensión MySQLi o PDO_MySQL. Consulte también MySQL: elegir una guía de API y preguntas frecuentes relacionadas para obtener más información. Las alternativas a esta función incluyen:
* mysqli_connect ()
* PDO :: __ construct ()


Tuve el mismo problema y tuve que consultar el manual php que me decía que las extensiones mysql y mysqli requieren la carga de libmysql.dll. Lo busqué en C: / windows / system32 (windows 7) y no pude encontrar, así que lo descargué here y lo coloqué en mi C: / windows / system32. Reinicié Apache y todo funcionó bien. Me tomó 3 días para descubrir, espero que ayude.