Foros del Web » Programando para Internet » PHP »

mysqli

Estas en el tema de mysqli en el foro de PHP en Foros del Web. Muy buenas a todos. A ver si puedo explicarme con claridad: tengo instalado el appserv 2.5.5, lo que viene a ser php5 y mysql5 tambien. ...
  #1 (permalink)  
Antiguo 10/10/2006, 13:14
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 0
mysqli

Muy buenas a todos.

A ver si puedo explicarme con claridad:

tengo instalado el appserv 2.5.5, lo que viene a ser php5 y mysql5 tambien.

Estoy usando el Zend para desarrollar mi aplicacion. Y mi problema viene a la hora de querer usar funciones mysql y mysqli.

si intento ejecutar la aplicacion en el zend (bueno, en realidad es una prueba muy sencilla de 3 clases) no me reconoce las funciones mysql ni mysqli (y si tratas mysqli como objetos ni siquiera te reconoce los objetos)

si copio los mismos archivos en la carpeta www de mi appserv, las funciones mysql se ejecutan sin problemas, pero con mysqli me pasa exactamente igual que en el zend.

por todo esto he deducido que mi problema viene a ser basicamente el de una mala configuracion de servidor local y del zend, y por mucho que he intentado arreglarlo no he sabido.

Asi que si algun alma caritativa puede y quiere echarme una mano se lo agradecere eternamente, thanks.

Por cierto, como no tenia la libreria de mysqli (libmysqli.dll), me la descargue y la coloque en la carpeta system32 (que era donde estaba la libreria libmysql.dll), y ademas en el archivo php.ini añadi la linea [extension=php_mysqli.dll] (sin ; al principio).

Presupongo que esto no sera suficiente por los pesimos resultados obtenidos. Asi que, gracias por adelantado.
  #2 (permalink)  
Antiguo 10/10/2006, 14:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Desconozco comun funciona Zend a ese nivel .. no sé que modalidad usas para pre-visualizar tus desarrollos, no sé si incorpora una versión del interprete de PHP integrada o bien le indicas cual usar en algún sitio (como hacen otros IDE's para PHP como Maguma por ejemplo y algunos más)

Cita:
Por cierto, como no tenia la libreria de mysqli (libmysqli.dll), me la descargue y la coloque en la carpeta system32 (que era donde estaba la libreria libmysql.dll), y ademas en el archivo php.ini añadi la linea [extension=php_mysqli.dll] (sin ; al principio).
OJO con eso que has hecho, debes bajarte las extensiones php_mysqli.dll de la versión exacta de PHP que uses (no otras).

Lo mismo sucede con las llibxxxx.dll que uses, deben ser de la versión exacta de Mysql que uses.

Estas libxxx.dll debes copiarlas a c:/windows o c:/windows/system32 (aquí no me acuerdo ya) y las otras php_xxx.dll que son las extensiones de PHP deben estar donde apunte:

extension_dir = ..... En este directorio.

Debes verificar que todo quedó instalado haciendo un phpinfo() a tu servidor y viendo si te aparece un bloque de información correspondiente a mysqli (y lo mismo con otras extensiones como mysql)

Más detalles:
http://www.maestrosdelweb.com/editorial/phpmysqlap/

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 10/10/2006 a las 15:02
  #3 (permalink)  
Antiguo 11/10/2006, 09:32
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 0
Antes de todo muchas gracias por una respuesta tan rapida.

A ver. Debido al gran cacao que tenia, al final decidi quitar el appserv e instalarme un apache a pelote (como los hombre )

El caso es uqe despues de 5 horas (si, 5 horas ) termine instalandolo todo y que me fuera bien.

Pues bien, he comprobado que en lo que he instalado (apache2, php5 y mysql5), dentro de php en la carpeta ext, ya existe la extension php_mysqli.dll.

El problema es que en la carpeta raiz de php (donde estan las librerias que hay que copiar a system32, no aparece la de mysqli.dll). Asi que como me ahs dicho que no puedo hacer un copy-paste de la que quiera... ¿como puedo conseguir la que yo necesito?

Y una vez conseguida... Yo no haria mas que copiarla en la carpeta raiz de php y en la carpeta system32, ademas de añadiendo la linea de extension al php.ini

¿seria ese el procedimiento a seguir?

Muchas gracias por tu tiempo de antemano
  #4 (permalink)  
Antiguo 11/10/2006, 15:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Realmente ya no me acuerdo como es en windows .. pero en la carpeta /dll ahí tendrías que tener mysqli.dll sobre todo si usas PHP 5.x

A ver si alguien lo confirma.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 12/10/2006, 03:36
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 0
Pues va a ser que no , ya hice una busqueda por todo el disco duro de dicha libreria y resulto infructuosa

El caso es uqe tampoco esta en la pagina oficial (o por lo menos yo no lo he visto), asiq eu no se donde encontrarlo.

Tambien he visto en el manual oficial de PHP la explicacion de como deberia hacerse, pero no entiendo un carajo. Pondria el enlace, pero no me dejan aun, asi que os pongo la explicacion que viene directamente:

************************************************** *******
Requisitos
Para tener estas funciones disponibles, usted debe compilar PHP con soporte para la extensión MySQLI.

Nota: La extensión mysqli está diseñada para trabajar con la versión 4.1.3 o superior de MySQL. Para versiones previas, por favor vea documentación de la extensión MySQL.

Instalación
Para instalar la extensión de mysqli para PHP, use la opción de configuración --with-mysqli=mysql_config_path/mysql_config donde mysql_config_path representa la ubicación del programa mysql_config que viene con MySQL en versiones superiores a 4.1.

Si quiere instalar la extensión de mysql junto con la extensión mysqli, usted tiene que usar la mismas librerias cliente, para evitar cualquier conflicto.

************************************************** ********

Si alguien lo entiende, que me lo explique, please
  #6 (permalink)  
Antiguo 12/10/2006, 06:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las recomendaciones que indicas sobre instalación de PHP son para PHP bajo Linux (el tema de --with .. )

En php encontrarás sólo la "extensión" que son esas php_xxx.dll que ya tendrás y que incorporan a PHP el grupo de funciones mysqli_xxx() para que las puedas usar, pero estas a su vez usan las mysqli.dll (u otras ".dll" que son las librerías en sí).

Copia tu libmysqli.dll a tu windows/system (no system32)

En tu php.ini la directiva:
extension_dir = .. debe apuntar al directorio donde tengas tus php_xxx.dll (normalmente php/extensions de la instalación de PHP)

OJO .. revisa bien que estés editando el php.ini que estás usando. Verifica la ruta del php.ini que debes modificar haciendo un phpinfo() (en el primer bloque de información lo veras).

Tal vez te haga falta:
http://www.zend.com/manual/faq.insta...tion.addtopath

Pero .. eso es lo mismo que copiar la .dll indicada al "windows/system":
Cita:
PHP 5+
El soporte para MySQL ya no es habilitado por defecto, así que el DLL php_mysql.dll DLL debe habilitarse al interior de php.ini. Asimismo, PHP necesita acceder a la biblioteca de cliente MySQL. Un archivo de nombre libmysql.dll es incluido en la distribución de PHP en Windows, y para que PHP se comunique con MySQL, este archivo necesita estar disponible en la ruta PATH de los sistemas Windows. Vea la entrada del FAQ titulada "Cómo agrego mi directorio PHP a la ruta PATH en Windows" para más información sobre cómo hacerlo. Aunque copiar libmysql.dll al directorio de sistema de Windows también funciona (ya que el directorio de sistema es parte del PATH del sistema por defecto), tal acción no es recomendada.

Al igual que ocurre con cualquier otra extensión (como php_mysql.dll), la directiva de PHP extension_dir debe definirse con el directorio en donde están ubicadas las extensiones PHP. Vea también las Instrucciones de Instalación Manual en Windows. Un valor de ejemplo de extension_dir para PHP 5 es c:\php\ext

Nota: Si al iniciar el servidor web un error similar al siguiente ocurre: "Unable to load dynamic library './php_mysql.dll'", se debe a que php_mysql.dll o libmysql.dll no pueden encontrarse por el sistema.
(la nota es para las librerías Mysql .. es lo mismo para Mysqli con sus respectivos nombres php_mysqli.dll ).

http://www.php.net/mysql

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 12/10/2006, 09:09
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 0
En el php.ini ya apunto a la libreria de extensiones, y ya añadi la linea de mysqli.

El problema es qeu esa libreria que me dices qeu busco (que en realidad es mysqli.dll) no aparece en mi sistema, la de mysql.dll si aparece, pero mysqli.dll no.

¿donde puedo encontrar esa libreria?¿tiene qeu ser especifica para mi version de php entonces?

Thanks a lot
  #8 (permalink)  
Antiguo 12/10/2006, 12:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según la documentación oficial de PHP .. libmysql.php está en el paquete que proporciona PHP (si te bajas el "Zip Package" de la zona de descargas).

No me queda más que recomendarte que te bajes el "Zip Package" .. Si bajas PHP 5.x debe de estar ahí.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 12/10/2006, 13:21
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Tal cual dice Cluster, debés bajarte el Zip Package de php 5.xx, dónde en un dir llamado ext (si mal no recuerdo) están las mismas. No debés moverlas ni copiarlas, solo tenes que tener la directiva extension_dir bien configurada en tu php.ini y descomentar la línea que habilita a la dll mysqli...pero ojo, para esto tendrás que reinstalar php, y tené en cuenta que esta dll no esta en la mayoría de los servers, por mas que tengan php5.x > y mysql4.1.x >.
__________________
Mi punto de partida es Que Bueno Lo Nuevo

Última edición por nicolaspar; 12/10/2006 a las 13:27
  #10 (permalink)  
Antiguo 16/10/2006, 08:42
 
Fecha de Ingreso: octubre-2006
Mensajes: 21
Antigüedad: 17 años, 6 meses
Puntos: 0
Muchas gracias a todos.

Ante todo quiero que perdoneis mi tardanza en contestar, pero no qeuria contestar sin haber visto todas las opciones.

Despues de mucho probar, desinstale el apache y le he vuelto a instalar otra vez con todo. Increiblemente funciono.

Para mysqli efectivamente no hace falta la libreria mysqli.dll, sino solo la que viene en la carpeta ext.

añadi la linea de codigo en el php.ini para activar la extension y ya funciona.

De verdad, agradeceros vuestra ayuda , sin la cual no lo hubiera conseguido, y deciros que espero poder echaros un cable yo alguna vez.

Sin mas, doy paso a que se cierre este hilo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.