2011-03-03 15 views
6

Error fatal: llamada a la función indefinida mysql_connect() en C: \ Apache \ htdocs \ test.php en línea 2Error fatal: llamada a la función no definida mysql_connect() en C: Apache htdocs test.php en la línea 2

He pasado 11 horas hoy tratando de superar este único problema.

tener instalada: MySQL 5.1 Apache 2.2.14 PHP 5.2.17

éstas eran las versiones que se hace referencia en el "PHP y MySQL" libro.

Cuando ejecuto el script:

<?php 
mysql_connect ('localhost', 'root', 'password'); 
?> 

donde localhost, la raíz y la contraseña son los valores reales de este sistema de prueba dado y todo lo que he visto es:

Fatal error: Call to indefinido function mysql_connect() en C: \ Apache \ htdocs \ test.php en la línea 2

Respuesta

18

Descomente la línea extension=php_mysql.dll en su archivo "php.ini" y reinicie Apache.

Además, el archivo "libmysql.dll" debe estar disponible para Apache, es decir, debe estar disponible en los sistemas de Windows PATH o en el directorio de trabajo de Apache.

Obtenga más información sobre la instalación de la extensión MySQL en manual.

P.S. Aconsejaría considerar la extensión de MySQL como obsoleta y usar MySQLi o incluso PDO para trabajar con bases de datos (prefiero PDO).

+2

uso ' phpinfo() 'para descubrir cuál php.ini es el correcto. –

+0

cual php.ini es el correcto, un minuto? – user389055

+0

"Descomentar la extensión de línea = php_mysql.dll en su php.ini y reiniciar Apache" hice esto ya listo – user389055

3

Tuve el problema similar. Lo resolví de la siguiente manera después de varios intentos de seguir los consejos en los foros. Estoy volviendo a publicar la solución porque podría ser útil para otros.

estoy corriendo Windows 7 (Apache 2.2 PHP 5.2.17 & & MySQL 5.0.51a), la sintaxis en el archivo "httpd.conf" (C: \ Archivos de programa (x86) \ Apache Software Foundation \ Apache2. 2 \ conf \ httpd.conf) fue sensible a las barras. Puede verificar si se lee "php.ini" en el directorio correcto. Simplemente escriba su navegador "localhost/index.php". El código de index.php es la siguiente:

<?php echo phpinfo(); ?>

No es la fila (no muy lejos de la parte superior) llamado "archivo de configuración cargado". Entonces, si no hay nada agregado, entonces el problema podría ser que su "php.ini" no se lee, incluso usted no está comentado (extensión = php_mysql.dll y extensión = php_mysqli.dll). Entonces, para que funcione, hice el siguiente paso. Necesitaba cambiar de

PHPIniDir 'c:\PHP\'

a

PHPIniDir 'c:\PHP'

Pagar la atención que la última barra perturba todo!

Ahora la fila "Archivo de configuración cargada" obtiene "C: \ PHP \ php.ini" después de actualizar "localhost/index.php" (antes de reiniciar Apache2.2) así como también está el bloque mysql. ¡MySQL y PHP están trabajando juntos!

-5

tuve el mismo problema y se utiliza el código de abajo y funcionó:

<?php 
$link = mysqli_connect("localhost","root","") or die ("Couldn't not connect"); 
mysqli_select_db($link, "Enter your project name here"); 
?> 
0

Cambiar el archivo database.php de

$db['default']['dbdriver'] = 'mysql'; 

a

$db['default']['dbdriver'] = 'mysqli'; 
Cuestiones relacionadas