Hola:
Intento conectarme a MySQL pero no me deja :(, este es el error:
Fatal error: Call to undefined function mysql_connect() in C:\web\modulos\funciones_bdd.php on line 4
Ya tengo como 3 años programando en PHP y no habia experimentado un error de este tipo :S, ya cheque la funcion y esta bien, creo que la bronca es el PHP.
Aqui paresita del httpd.conf:
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule php5_module C:\php\php5apache2_2.dll
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
Aqui le dejo la funcion de conectar():
<?php
function conectar()
{
if( ($link= mysql_connect( "localhost", "user", "password" )) == FALSE )
{
echo "<span>Problemas para Conectar con la Base de Datos.<br>";
echo mysql_error( $link );
echo "</span>";
return 0;
}
else if( mysql_select_db( "fortune" )==FALSE )
{
echo "<span>Problemas para Seleccionar Base de Datos.<br>";
echo mysql_error($link);
echo "</span>";
return 0;
}
return $link;
}
?>
Aqui mi php.ini:
[PHP]
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.
;extension=php_mbstring.dlle
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On
; Maximum number of persistent links. -1 means no limit.
mysql.max_persistent = -1
; Maximum number of links (persistent + non-persistent). -1 means no limit.
mysql.max_links = -1
; Default port number for mysql_connect(). If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
mysql.default_port =
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =
; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =
; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =
; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =
; Maximum time (in seconds) for connect timeout. -1 means no limit
mysql.connect_timeout = 60
; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
mysql.trace_mode = Off
byee
el resto de funciones de mysql te las reconoce?
ponlas antes para ver si solo te dan error de necesita conexión o de undefined
Cita de: Hans el Topo en 25 Noviembre 2006, 00:41 AM
el resto de funciones de mysql te las reconoce?
ponlas antes para ver si solo te dan error de necesita conexión o de undefined
No reconoce ninguna funcion, dice el mismo error:
Call undefined.... bla bla blaAlguien sabe o tiene el mismo problema
exactamente con esas versiones de PHP y Apache ????
Otra cosa importante que no menciones antes: al realizar phpinfo() y ver lo que muestra, NO menciona cosa alguna referente a
mysql :S.... porke sera ??? :S
bye
Eso es porque no has habilitado el módulo de mysql en el php.ini
Busca esta línea y descoméntala.
extension=php_mysql.dll
Saludos
Cita de: Morris en 25 Noviembre 2006, 08:59 AM
Eso es porque no has habilitado el módulo de mysql en el php.ini
Busca esta línea y descoméntala.
extension=php_mysql.dll
Saludos
parece ser que la tiene descomentada xD
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
Cierto xD
No tendrás 2 php.ini ?
Ese error me lo daba cuando la extensión estaba deshabilitada...
Cita de: Morris en 25 Noviembre 2006, 19:39 PM
Cierto xD
No tendrás 2 php.ini ?
Ese error me lo daba cuando la extensión estaba deshabilitada...
No es logico lo que dices :S... oviamente si intento tener 2
php.ini en un mismo sitio, pues me diria:
"El archivo ya existe"...
El mismo
php.ini que tengo en:
C:\php\ es el que esta copiado en
C\WINDOWS\ !!!...
Respecto a la libreria
php4ts.dll, esta copiada en:
C:\WINDOWS\Systema32\ (Win XP)
bye bye
No en un mismo lugar, si no en 2 carpetas diferentes y que estes modificando el erróneo, pero si dices que son idénticos ni idea.
Sobre el funcionamiento de PHP5 con MySQL 5.0. Utilizado PHP5 como viene en el ZIP de descarga de php.net, NO me permite conectarme a la Base de Datos :S :(, de echo me dice que no reconoce la funcion mysql_connect(), PHP5 a diferencia de PHP4, tiene declaradas las extensiones explicitanente en el php.ini, mas o menos asi:
;extension=php_mbstring.dlle
;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_mysql.dll
Lo que he echo es quitar el comentario de las DLLs de: php_curl.dll y php_mysql.dll y he dejado esta moficacion asi tanto en el PHP.INI que esta en C:\php y C\WINDOWS, reinicie la maquina pero sigo sin poder conectar a MySQL con PHP5 :(.....
Asi quedo el PHP.INI de PHP5:
;extension=php_mbstring.dlle
;extension=php_bz2.dll
extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
extension=php_mysql.dll
Y tengo problemas aun para conectar con la BDD, la unica solucion que veo es regresar a PHP4 :(, con este NO presento ningun problema :S !!!
Ayuda porfavor !!!
Gracias !!
seguro que no te comiste nada?
yo hace poco toquitee en las consolas de mysql un par de comandos de reseteo de usuarios y nose que más y luego me daba el mismo error que a ti... solución
reinstalar todo otra vez xD
El appserv te configura todo automáticamente, exale un ojo
http://www.appservnetwork.com/
yo tengo mysql 5.0 y php5 instalado y no tengo problema alguno...
Cita de: Hans el Topo en 12 Diciembre 2006, 20:12 PM
seguro que no te comiste nada?
yo hace poco toquitee en las consolas de mysql un par de comandos de reseteo de usuarios y nose que más y luego me daba el mismo error que a ti... solución
reinstalar todo otra vez xD
El appserv te configura todo automáticamente, exale un ojo
http://www.appservnetwork.com/
yo tengo mysql 5.0 y php5 instalado y no tengo problema alguno...
Presento problemas aun asi :(, osea... todo esta echo bien, siempre he echo esta instalacion/configuracion, mira:
1- Descomprimo php-5.2.0 y lo guardo en:
C:\php2- Copio
php.ini hacia:
C:\WINDOWS3- Copio php5ts.dll hacia:
C:\WINDOWS\System324- Instalo MySQL 5.0.27
5- Instalo Apache 2.2.3
6- Abro
httpd.conf y modifico asi:
//configuro la ruta de mi directorio WEB
DirectoryIndex index.html index.htm index.php
AddType application/x-httpd-php .php
//agrego modulo
LoadModule php5_module C:\php\php5apache2_2.dll
Realizo:
<?php
echo phpinfo();
?>
Y
no me muestra la sección de MYSQL :(...
Encambio hago esto otro:
1- Desinstalo Apache 2.2.3 e instalo Apache 2.0.59
2- Instalo php-4.4.4 (meto los files a C:\php)
3- Copi php.ini en C:\WINDOWS
4- Copio php4ts.dll en C:\WINDOWS\System32\
5- Modifico
httpd.conf//configuro la ruta de mi directorio WEB
DirectoryIndex index.html index.htm index.php
AddType application/x-httpd-php .php
//agrego modulo
LoadModule php4_module C:\php\sapi\php4apache2.dll
Checo el
phpinfo() y
Si muestra la sección de MYSQL con todos los datos !!...
Ya nose que hacer :(.... ayuda !!
prueba a instalarte el appserv con las versiones 5 y checka k te funciona, si te funciona es que algo andas haciendo mal...xD
yo solo lo instale todo a mano una vez, asi que ahora no te puedo decir si requiere más pasos
En el p*to windows, ademas de descomentar el mysql.dll en php.ini, asegúrate de que el directorio de extensiones esté bien configurado:
extension_dir = "./ext"
creo que pone extension_dir="./"
Usa Linux :-D
Salud!
Mira, yo ando mas o menos ne lo mismo, tenia el php 5.0.14 y el apache(ultima version), entonces voy a actualizar al php ultima version, desinstalo todo lo del viejo, pongo lo del nuevo, lo configuro y me pasaba lo mismo que a vos, despues reinicie la pc y que paso? php se muere mientras arranca, da un error tipo enviar, no enviar. Aun co ntodas las ext deshabilitadas...
PD: En mi debian si me anda ;D :P
Saludos
Para usar MySQL con PHP 5, necesitas MySQLi
Las funciones son las mismas, pero en vez de mysql_connect(), es mysqli_connect () y asi las demas.
Busca info sobre el tema, porque yo aun estoy verde, pero te aseguro que es asi. En php.net o en Mysql.org encontraras mas info.
Salu2
Cita de: Terranius en 9 Enero 2007, 14:56 PM
Para usar MySQL con PHP 5, necesitas MySQLi
Las funciones son las mismas, pero en vez de mysql_connect(), es mysqli_connect () y asi las demas.
Busca info sobre el tema, porque yo aun estoy verde, pero te aseguro que es asi. En php.net o en Mysql.org encontraras mas info.
Salu2
Na, ya me anda bien.
Saludos
Bueno, solo me registre para responder esto ya que lo encontre a este tema por buscador y segun estuve leyendo con todo lo que dicen a mi tampoco me funciono.
El tema es que tengo un problema temporal con un server y debia mudarlo a otro y las bases de datos YA eran de version 5, PHP 5.2 y apache 2.2 y estaba obligado para mudar todo sin renegar a actualizar el server W2K3 e instale todo pero obiamente la conjuncion de PHP + mysql no funcionaban correctamente.
Descargue los instaladores MySql 5.0.45, Php 5.2.3 y Apache 2.2.4 instale todo y a renegar se a dicho. La verdad hice tantos cambios que solo recuerdo lo que hizo funcionar correctamente.
Para que chequees en q momento estaria bien actibado el php + mysql deberias en tu php.ini Habilitar el display_startup_errors pasandolo a On haci veras todos los errores hasta que quede sin los mismos.
Bueno Aqui esta la receta magica para aquellos q utilizaron el Instaler de PHP y es que este situa al final del httpd.conf las lineas pertinente a la habilitacion del modulo php pero pero cuando señala el directorio lo hace con doble barra (ej: \\) y esto no hace coincidir con el directorio señalado del php.ini al cual se refiere donde estan los modulos (generalmente C:\php\ext) y lo resolvi de esa manera, dejando simple barra ( \ ) en el httpd.conf donde esta señalado "LoadModule php5_module".
Otros detalles:
-Subi la config de lugar php hasta el ultimo LoadModule default del httpd.conf (En mi caso esta situada debajo del modulo mod_ssl.so)
-Copie al C:\%SystemRoot%\System32 los archivos php5ts.dll y libmysql.dll
Espero que esto le ayude a alguien mas, Saludos
Cita de: TruenoBlaster en 8 Agosto 2007, 06:11 AM
Bueno, solo me registre para responder esto ya que lo encontre a este tema por buscador y segun estuve leyendo con todo lo que dicen a mi tampoco me funciono.
El tema es que tengo un problema temporal con un server y debia mudarlo a otro y las bases de datos YA eran de version 5, PHP 5.2 y apache 2.2 y estaba obligado para mudar todo sin renegar a actualizar el server W2K3 e instale todo pero obiamente la conjuncion de PHP + mysql no funcionaban correctamente.
Descargue los instaladores MySql 5.0.45, Php 5.2.3 y Apache 2.2.4 instale todo y a renegar se a dicho. La verdad hice tantos cambios que solo recuerdo lo que hizo funcionar correctamente.
Para que chequees en q momento estaria bien actibado el php + mysql deberias en tu php.ini Habilitar el display_startup_errors pasandolo a On haci veras todos los errores hasta que quede sin los mismos.
Bueno Aqui esta la receta magica para aquellos q utilizaron el Instaler de PHP y es que este situa al final del httpd.conf las lineas pertinente a la habilitacion del modulo php pero pero cuando señala el directorio lo hace con doble barra (ej: \\) y esto no hace coincidir con el directorio señalado del php.ini al cual se refiere donde estan los modulos (generalmente C:\php\ext) y lo resolvi de esa manera, dejando simple barra ( \ ) en el httpd.conf donde esta señalado "LoadModule php5_module".
Otros detalles:
-Subi la config de lugar php hasta el ultimo LoadModule default del httpd.conf (En mi caso esta situada debajo del modulo mod_ssl.so)
-Copie al C:\%SystemRoot%\System32 los archivos php5ts.dll y libmysql.dll
Espero que esto le ayude a alguien mas, Saludos
Hola:
Aqui tienen la solucion: VER MANUAL (http://darkdiabliyo.iespana.es/index.php?topic=20.0)
:P
Hay que copiar libmysql.dll y php_mysql.dll o libmysqli.dll y php_mysqli.dll a C:\WINDOWS\system32
:P