Foros del Web » Programando para Internet » PHP »

mysql_num_rows ¿obsoleta?

Estas en el tema de mysql_num_rows ¿obsoleta? en el foro de PHP en Foros del Web. Buenas, he visto aquí lo siguiente: http://php.net/manual/es/function.mysql-num-rows.php Código: Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su ...
  #1 (permalink)  
Antiguo 03/07/2013, 10:06
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 13 años, 9 meses
Puntos: 8
mysql_num_rows ¿obsoleta?

Buenas, he visto aquí lo siguiente: http://php.net/manual/es/function.mysql-num-rows.php

Código:
Esta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro. En su lugar, deberían usarse las extensiones MySQLi o PDO_MySQL. Véase también la guía MySQL: elegir una API y P+F relacionadas para más información. Las alternativas a esta función incluyen:
¿Saben cuando sucedera esto? Me preocupa porque utilizo mucho esta función...

¿alguna opcion similar para ir cambiando mi codigo?

Saludos.
  #2 (permalink)  
Antiguo 03/07/2013, 10:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mysql_num_rows ¿obsoleta?

Toda la extensión MySQL está marcada como obsoleta, lee lo siguiente: http://www.forosdelweb.com/f18/anunc...oleta-1008145/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 03/07/2013, 10:15
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: mysql_num_rows ¿obsoleta?

Ya lleva años obsoleta al igual que toda la mysql, lamentablemente.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 03/07/2013, 10:18
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: mysql_num_rows ¿obsoleta?

Holas, fbedia.

Como dice pateketrueke, hace años que php ha venido anunciando esto.

Ahora respondiendo a tu pregunta, cuando has programado tus páginas usando las librerías php de manera directa, lo que te queda es tener que reemplazar todo masivamente. Si cambias de mysql a mysqli (que, hasta lo útlimo que leí, sí está vigente), podrías hacerlo con un reemplazar masivo, ya que la gran mayoría de los comandos funcionan de idéntica forma (al menos en el modo procedural); de cualquier forma, tendrías que hacer la prueba con un solo script para verificar las equivalencias.

Ahora, la solución ideal, sería trabajar con clases propias, de modo que las páginas accedan a las funcionalidades de las clases tuyas y no a las de las librerías php directamente. Trabajando así, encapsulado, cuando ocurran nuevamente este tipo de cambios radicales, sólo cambias el código de la clase (una), no de tus páginas (muchas).

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #5 (permalink)  
Antiguo 03/07/2013, 10:21
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: mysql_num_rows ¿obsoleta?

Tal como dice quinqui, el paso a la nueva mysqli no es tan terrible, con Dreamweaver puedes reemplazar toda la carpeta del sitio de esta forma:

Reemplazar: mysql
Por: mysqli

Reemplazar: mysqli_query("
Por mysqli_query($con,"

Borrar todos los: mysql_select_db($db);

Modificar todas los: mysql_connect($serv,$user,$pass);
Por: mysqli_connect($serv,$user,$pass,$db);

Creo que no se me olvida nada
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 03/07/2013, 10:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mysql_num_rows ¿obsoleta?

Cita:
Iniciado por quinqui Ver Mensaje
Holas, fbedia.

Como dice pateketrueke, hace años que php ha venido anunciando esto.

Ahora respondiendo a tu pregunta, cuando has programado tus páginas usando las librerías php de manera directa, lo que te queda es tener que reemplazar todo masivamente. Si cambias de mysql a mysqli (que, hasta lo útlimo que leí, sí está vigente), podrías hacerlo con un reemplazar masivo, ya que la gran mayoría de los comandos funcionan de idéntica forma (al menos en el modo procedural); de cualquier forma, tendrías que hacer la prueba con un solo script para verificar las equivalencias.

Ahora, la solución ideal, sería trabajar con clases propias, de modo que las páginas accedan a las funcionalidades de las clases tuyas y no a las de las librerías php directamente. Trabajando así, encapsulado, cuando ocurran nuevamente este tipo de cambios radicales, sólo cambias el código de la clase (una), no de tus páginas (muchas).

Saludos!
De hecho estas equivocado quinqui, no funcionan igual ya que los parámetros cambian el orden, lamentablemente no se puede hacer un search/replace masivo, la mayoría de las funciones del API procedural de MySQLi el primer parámetro es el objeto de conexión y en mysql normal es el último.

No queda más que ir actualizando todo el código parte a parte y script por script...
  #7 (permalink)  
Antiguo 03/07/2013, 10:26
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 7 meses
Puntos: 56
Respuesta: mysql_num_rows ¿obsoleta?

Cita:
Iniciado por GatorV Ver Mensaje
De hecho estas equivocado quinqui, no funcionan igual ya que los parámetros cambian el orden, lamentablemente no se puede hacer un search/replace masivo, la mayoría de las funciones del API procedural de MySQLi el primer parámetro es el objeto de conexión y en mysql normal es el último.

No queda más que ir actualizando todo el código parte a parte y script por script...
Mmh, sí, eso me temía, por eso le decía a fbedia que hiciera la prueba con un script, para comprobar las equivalencias. De cualquier forma, el reemplazo todavía podría ser posible, por ejemplo, si las sentencias fueran así:

Original: mysql_query($consulta)
Buscar: mysql_query($
Reemplazar con: mysqli_query($conexion, $

PD: Sé que mi nick no indica género, pero por favor, déjenme de tratar como hombre, debiera haber un indicativo del sexo bajo el avatar, jejeje XD...
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #8 (permalink)  
Antiguo 03/07/2013, 10:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mysql_num_rows ¿obsoleta?

Claro pero aún así hay diferencias y muchas, un reemplazo de esa manera solo trae más bugs que soluciones, es mejor entender como funciona el nuevo API y las mejoras que brinda, si fuera algo tan simple como un reemplazo, creeme que los desarrolladores no la hubieran deprecado.

La idea es que actualicen sus scripts y aprovechen todas las ventajas...
  #9 (permalink)  
Antiguo 03/07/2013, 10:34
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 13 años, 9 meses
Puntos: 8
Respuesta: mysql_num_rows ¿obsoleta?

Valla, no tenia ni idea del cambio.... voy a tener que ponerme las pilas :s
Iré probando a migrar parte del codigo...

Muchas gracias por la info.

Seguimos en contacto!
  #10 (permalink)  
Antiguo 03/07/2013, 10:39
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: mysql_num_rows ¿obsoleta?

Mas alla de las aclaraciones de @GatorV para quienes usan Notepad++ es posible hacer reemplazos en todos los archivos de un directorio aplicando incluso expresiones regulares para hacer los reemplazos.

Eso mismo se puede hacer en PHP facil leyendo todos los archivos de un directorio mediante directoryIterator y luego aplicando las mismas expresiones regulares para los reemplazos con preg_match_replace()


PD: hacer reemplazos a lo loco puede ser imperfecto ya que puede variar el numero de espacios por ejemplo entre la funcion y los parentesis, entre las comas .. variables... minimo toca chequear eso de alguna forma .. no necesariamente con REGEXs
__________________
Salu2!
  #11 (permalink)  
Antiguo 03/07/2013, 11:07
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: mysql_num_rows ¿obsoleta?

Cita:
Iniciado por Italico76 Ver Mensaje
Mas alla de las aclaraciones de @GatorV para quienes usan Notepad++ es posible hacer reemplazos en todos los archivos de un directorio aplicando incluso expresiones regulares para hacer los reemplazos.

Eso mismo se puede hacer en PHP facil leyendo todos los archivos de un directorio mediante directoryIterator y luego aplicando las mismas expresiones regulares para los reemplazos con preg_match_replace()


PD: hacer reemplazos a lo loco puede ser imperfecto ya que puede variar el numero de espacios por ejemplo entre la funcion y los parentesis, entre las comas .. variables... minimo toca chequear eso de alguna forma .. no necesariamente con REGEXs
Exacto, yo lo hice en un par de horas con Dreamweaver que tambien permite expresiones regulares, es cierto que algunas necesitan reoperarse sobre todo algunas como mysql_real_escape_string y mysql_list_fields, pero el reemplazo masivo ahorra mucho tiempo.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #12 (permalink)  
Antiguo 31/08/2013, 13:32
 
Fecha de Ingreso: febrero-2008
Mensajes: 109
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: mysql_num_rows ¿obsoleta?

Ya que el tema está abierto pregunto: ¿Hay que ir función por función en el manual php online para hacer las modificaciones una por una e ir probando? Me parece que sería lo correcto.
  #13 (permalink)  
Antiguo 31/08/2013, 14:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: mysql_num_rows ¿obsoleta?

Creo que todo dependerá de si quieres hacer un trabajo prolijo, o enviar a realizar a lo tosco, y pasarte meses corrigiendo los defectos, a medida que se vayan presentando (y se suelen presentar en forma de errores catastróficos).
Lo mejor es, como ya lo mencionaron, encapsular todo el acceso a dato en una misma clase controladora, y de ese modo, de ser necesario, simplemente modificas esa única clase.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, sql
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:05.