He ejecutado aptitude install php5-mysql
(y reiniciado MySQL / Apache 2), pero sigo recibiendo este error:
Error fatal: llamada a la función no definida mysql_connect () en /home/validate.php en la línea 21
phpinfo()
dice que el archivo /etc/php5/apache2/conf.d/pdo_mysql.ini ha sido analizado.
php
mysql
ubuntu
mysql-connect
undefined-function
usuario1765369
fuente
fuente
Respuestas:
Bueno, esta es tu oportunidad! Parece que PDO está listo; usa eso en su lugar.
Intente verificar si se está cargando el módulo de extensión PHP MySQL:
<?php phpinfo(); ?>
Si no está allí, agregue lo siguiente al
php.ini
archivo:extension=php_mysql.dll
fuente
mysql_*
Las funciones son peligrosas y obsoletas a partir de PHP 4.1. Verifique sus registros de errores de Apache y reinicie el servidor. ¿Eso funciona?En caso de que ya esté usando PHP7, las funciones anteriormente obsoletas
mysql_*
se eliminaron por completo, por lo que debe actualizar su código utilizando las funciones omysqli_*
funciones PDO en su lugar.Si eso no es posible, como solución temporal , creé un pequeño archivo de inclusión PHP, que recrea las
mysql_*
funciones antiguas conmysqli_*()
-functions: fix_mysql.inc.phpfuente
Veo que etiquetó esto con Ubuntu. Lo más probable es que el controlador MySQL (y posiblemente MySQL) no esté instalado. Suponiendo que tiene acceso SSH o terminal y permisos sudo, inicie sesión en el servidor y ejecute esto:
sudo apt-get install mysql-server mysql-client php5-mysql
Si los paquetes MySQL o el paquete php5-mysql ya están instalados, esto los actualizará.
ACTUALIZAR
Dado que esta respuesta todavía recibe un clic ocasional, la actualizaré para incluir PHP 7 . PHP 7 requiere un paquete diferente para MySQL, por lo que querrá usar un argumento diferente para el comando apt-get.
sudo apt-get install mysql-server mysql-common php7.0 php7.0-mysql
Y lo que es más importante,
mysql_connect()
ha quedado obsoleto desde PHP v5.5.0. Consulte la documentación oficial aquí: PHP: mysql_connect ()fuente
Si alguien vino aquí con el problema de las imágenes oficiales de docker php , escriba el siguiente comando dentro del contenedor de docker.
$ docker-php-ext-install mysql mysqli pdo pdo_mysql
Para obtener más información, consulte el enlace de la
How to install more PHP extensions
sección anterior (pero es un poco difícil para mí ...).O este documento puede ayudarte.
fuente
mysql
es lo que quieroTambién me quedé atascado con el mismo problema de MySQL_connect () indefinido. Intenté hacer cambios en el archivo PHP.ini pero me estaba dando el mismo error. Luego llegué a esta solución donde cambié mi código de funciones php depreciadas a funciones nuevas.
$con=mysqli_connect($host,$user,$password); mysqli_select_db($con,dbname); //To select the database session_start(); //To start the session $query=mysqli_query($con,your query); //made query after establishing connection with database.
Espero que esto ayude . Esta solución me está funcionando correctamente.
EDITAR:
Si actualiza el php antiguo, necesita
apt-get install php7.0-mysql
fuente
En archivo php.ini
cambia esto
;extension=php_mysql.dll
dentro
extension=php_mysql.dll
fuente
Tratar:
<?php phpinfo(); ?>
Ejecute la página y busque
mysql
. Si no lo encuentra, ejecute lo siguiente en el shell y reinicie el servidor Apache:sudo apt-get install mysql-server mysql-client php5-mysql
También asegúrese de tener todas las siguientes líneas sin comentar en algún lugar de su archivo apache2.conf (o en su archivo conf.d / php.ini), desde
;extension=php_mysql.so
a
extension=php_mysql.so
fuente
Supongo que su instalación de PHP no se compiló con el soporte de MySQL.
Verifique su comando de configuración (
php -i | grep mysql
). Deberías ver algo como'--with-mysql=shared,/usr'
.Puede consultar las instrucciones completas en http://php.net/manual/en/mysql.installation.php . Aunque, prefiero ir con la solución propuesta por @wanovak.
Aún así, creo que necesita compatibilidad con MySQL para usar PDO.
fuente
La pregunta está etiquetada con
ubuntu
, pero la solución para eliminar los comentariosextension=mysqli.dll
es específica de Windows. Estoy confundido aquí?!, De todos modos, lo primero que ejecute<? php phpinfo ?>
y busquemysql*
bajo elConfiguration
encabezado. Si no ve algo así, significa que no lo ha instalado o habilitadophp-mysql
. Así que primero instalaphp-mysql
sudo apt get install php-mysql
Este comando se instalará
php-mysql
dependiendo delphp
que ya hayas instalado, ¡así que no te preocupes por la versión!Luego viene la solución específica de Unix, en el
php.ini
archivo descomentar la líneaextension=msql.so
verificar que
msql.so
está presente en/usr/lib/php/<timestamp_folder>
, ELSEextension=path/to/msql.so
Luego, finalmente reinicie los servicios
apache
ymysql
, y ahora debería ver lamysql
sección bajo elConfigrations
encabezado enphpinfo page
fuente
Recibí este error porque el proyecto en el que estaba trabajando se desarrolló en php 5.6 y, después de la instalación, el proyecto no pudo ejecutarse en php7.1.
Solo para cualquiera que use Vagrant con ubuntu / nginx, en el directorio nginx (/ etc / nginx /), hay un directorio llamado "sites-available" que contiene un archivo llamado como la url configurada para la máquina vagrant. En mi caso fue homestead.app. Dentro de este archivo hay una línea que dice algo como
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
Allí puede cambiar la versión de php a la deseada para ese sitio en particular.
Busqué en Google, pero no pude encontrar una respuesta simple que dijera dónde buscar y qué cambiar.
Espero que esto ayude a alguien. Gracias.
fuente
Para CentOS 7.8 y PHP 7.3
yum install rh-php73-php-mysqlnd
Y luego reinicie apache / php.
fuente
Si recibe el error como
Por favor inicie sesión en el cPanel >> Haga clic en Seleccionar versión de Php >> seleccione la extensión MYSQL
fuente
Debe haber algún error de sintaxis. Copie / pegue este código y vea si funciona:
<?php $link = mysql_connect('localhost', 'root', ''); if (!$link) { die('Could not connect:' . mysql_error()); } echo 'Connected successfully'; ?
Tuve el mismo mensaje de error. Resulta que estaba usando la
msql_connect()
función en lugar demysql_connect()
.fuente
(Configuración de Windows mysql)
Paso 1: Vaya al Panel de control de Apache> Apache> Configuración> PHP.ini
Paso 2: Buscar en el Bloc de notas (Ctrl + F) para:
;extension_dir = ""
(podría comentarse con a;
). Reemplace esta línea con:extension_dir = "C:\php\ext"
(por favor, no necesita eliminar el;
al principio de la oración).Paso 3: Busque:
extension=php_mysql.dll
y elimine el;
al principio.Paso 4: guarde y reinicie su servidor HTTP Apache. (En Windows esto generalmente se hace a través de una interfaz de usuario)
Eso es :)
Si recibe errores sobre falta
php_mysql.dll
, probablemente deba descargar este archivo desde el sitio php.net o pecl.php.net. (Tenga en cuenta de dónde lo obtiene)Más información sobre PHP: Instalación de extensiones en Windows - Manual
fuente
C:\\php
en el sistema.