Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/09/2004, 14:48
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por kikelee
Hola

Pues con otra pregunta:

Si programas con PHP ¿como accesas a las DB en MySQL? sin utilizar las funciones de PHP.

¿Realemte existe otra forma de programar con PHP y accesar a la DB?
Ejemplo:

Contar el número de registros que arroja una consulta:

Opción PHP:
Código PHP:
$sql="SELECT * FROM tabla";
$resultado=mysql_query($sql);
echo 
"Total registros: ".mysql_num_rows($resultado); 
Opción SQL:
Código PHP:
$sql="SELECT COUNT(*) FROM tabla";
$resultado=mysql_query($sql);
echo 
"Total registros: ".mysql_result($resultado,0); 
Aparentemente no hay mucha diferencia .. pero el rendimiento de ambos casos es completamente diferente. La primera opción (PHP) la consulta SQL se ejecuta completamente para luego contar los registros que arrojó .. esto lo hace PHP con su función mysql_num_rows() .. La segunda opción (vía SQL) se usa "COUNT()" (función de Mysql) para obtener UN sólo registro con ese total de registro que arrojaría la consulta SQL dada. Cara a PHP (para que este lo gestione) sólo debe gestionar un sólo "record-set" de resultado .. mientras que en la anterior versión (PHP) se ha de gestionar PHP los N registros que pudieran resultar.

Esto tampoco implica que "nunca" se deba usar mysql_num_rows() .. todo depende de la situación: por ejemplo .. si se va a usar esos datos (de la consulta .. el "record-set") y también se requiere ese "total" de registros .. no es necesario hacer dos consultas SQL una para el "COUNT()" y otra sin COUNT para leer los registros arrojados, pero si hay registros limitados por médio (como suele suceder en sistemas de paginación por ejemplo) al usar COUNT() y no mysql_num_rows() se optimiza mucho el proceso.

Otros casos como "sub-consultas" se puede resolver desde PHP haciendo cosultas SQL simples y usando bucles anidados .. pero vía SQL y una consulta "relacional" más compleja que las anteriores se puede obtener el mismo resultado con muchoooo menos PHP por médio y sobre todo más óptimo en su rendimiento (ejecución). Y así hay un largo etc. que se va viendo conforme se conoce más SQL.

Un saludo,