Foros del Web » Programando para Internet » PHP »

¿Separar sentencias MySql de php?

Estas en el tema de ¿Separar sentencias MySql de php? en el foro de PHP en Foros del Web. Buenas Estoy creando una "aplicación web" cuyo código va a ser revisado posteriormente y alguien me comentó un día que intentara separar el PHP del ...
  #1 (permalink)  
Antiguo 22/06/2009, 02:01
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
De acuerdo ¿Separar sentencias MySql de php?

Buenas

Estoy creando una "aplicación web" cuyo código va a ser revisado posteriormente y alguien me comentó un día que intentara separar el PHP del resto de sentencias SQL que tienen lugar en su código. (he de decir que esa persona no tenía experiencia en PHP)

Me pareció un poco extraño, pero me gustaría saber si conocéis el modo de operar a nivel profesional en este tipo de aplicaciones con php.
¿se suelen separar estos elementos?
¿cómo es el modo de trabajar en php?

Saludos y gracias.
  #2 (permalink)  
Antiguo 22/06/2009, 02:16
Avatar de AnisDelMono  
Fecha de Ingreso: febrero-2007
Ubicación: Pas de la Casa
Mensajes: 247
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: ¿Separar sentencias MySql de php?

Hola

Pues no entiendo muy bien tu pregunta. Pero la metodologia para trabajar php y mysql es mas o menos la siguiente:

Contruccion de una cadena para la consulta. En este ejemplo tiene, ademas, php incrustado y es recogido por una variable:

Código PHP:
$cadena"SELECT * FROM tabla WHERE id=".$id;

$consultamysql_query($cadena); 
Otra manera no la conozco.

Mira el manual. Hay varios ejemplos:

php.net/manual/es/function.mysql-query.php
__________________
=>=>=>=>=>=>=>=>=>=>=>=>=>
¡Disidente!
Frente Popular de Judea, Life of Brian
  #3 (permalink)  
Antiguo 22/06/2009, 02:40
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: ¿Separar sentencias MySql de php?

Yo tampoco conzco otra manera... Si dices que no tenía experiencia en php quizás quiso marcársela y quedar como que era el jefe programando, pero vamos, que yo sepa, para usar sql en php tienes que incrustarlo en un código php... No hay otra forma, porque el código sql tienes que moverlo con variables, y para pasar esas variables al php hay que hacerlo entre etiquetas de php, tal y como pone AnisDelMono en su ejemplo.
__________________
Dando cabezados se aprende...
  #4 (permalink)  
Antiguo 22/06/2009, 02:57
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
Respuesta: ¿Separar sentencias MySql de php?

Pues me refiero a tener por ejemplo en archivos separados las sentencias SQL del resto del códogo PHP.
Y aunque sea hacer un include para meterlo y tal.

Saludos.
  #5 (permalink)  
Antiguo 22/06/2009, 03:04
Avatar de aliza  
Fecha de Ingreso: diciembre-2008
Mensajes: 156
Antigüedad: 15 años, 3 meses
Puntos: 6
Respuesta: ¿Separar sentencias MySql de php?

Pero como usas el resultado del sql si no lo asignas a una variable php?
__________________
Dando cabezados se aprende...
  #6 (permalink)  
Antiguo 22/06/2009, 03:07
Avatar de AnisDelMono  
Fecha de Ingreso: febrero-2007
Ubicación: Pas de la Casa
Mensajes: 247
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: ¿Separar sentencias MySql de php?

Tal vez se referia a hacer funciones propias para los querys. Si, es una buena practica. Funcion insertar(), seleccionar(), actualizar() y le pasas los parametros adecuador para cada funcion. Y lo anyades mediante un include a todos los archivos donde necesites hacer querys
__________________
=>=>=>=>=>=>=>=>=>=>=>=>=>
¡Disidente!
Frente Popular de Judea, Life of Brian
  #7 (permalink)  
Antiguo 22/06/2009, 14:09
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: ¿Separar sentencias MySql de php?

En efecto creo es más complicado separar las sentencias SQL y te llevas más problemas, lo que puedes hacer es desde código generarlas por ejemplo dale un ojo a la clase Zend_Db_Select para que veas como generar consultas al vuelo.

Saludos.
  #8 (permalink)  
Antiguo 22/06/2009, 14:33
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
Respuesta: ¿Separar sentencias MySql de php?

Osea que por lo que veo no se lleva esto de separar las sentencias SQL del php y complicarse la vida ¿no?
Ok.

Es que fue un consejo de un profesor de universidad, pero por lo visto PHP se parece en poco a lenguajes tipo C, java y demás

Gracias a todos.
  #9 (permalink)  
Antiguo 22/06/2009, 16:14
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 7 meses
Puntos: 2237
Respuesta: ¿Separar sentencias MySql de php?

No has pensado que la sugerencia era mas del tipo MVC? donde tienes por separados los codigos para acceso a base de datos (Modelo), para presentar info obtenida (Vista) y para obtener las acciones a realizar (Codigo)
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 23/06/2009, 02:07
Avatar de IMAC/  
Fecha de Ingreso: octubre-2005
Mensajes: 738
Antigüedad: 18 años, 5 meses
Puntos: 14
Respuesta: ¿Separar sentencias MySql de php?

Cita:
Iniciado por Triby Ver Mensaje
No has pensado que la sugerencia era mas del tipo MVC? donde tienes por separados los codigos para acceso a base de datos (Modelo), para presentar info obtenida (Vista) y para obtener las acciones a realizar (Codigo)
Por eso mismo. Quería saber si se podría hacer algo similar en PHP.
  #11 (permalink)  
Antiguo 23/06/2009, 05:00
Avatar de AnisDelMono  
Fecha de Ingreso: febrero-2007
Ubicación: Pas de la Casa
Mensajes: 247
Antigüedad: 17 años, 1 mes
Puntos: 7
Respuesta: ¿Separar sentencias MySql de php?

Creo que se por donde vas.

Digamos que quieres hacer un delete a una tabla mediante el id. Entonces haces una funcion con los parametros adecuados:

Código PHP:
function borrar_registro($tabla$id){
$delete"DELETE FROM ".$tabla." WHERE id='".$id."'";
mysql_query($delete);
}

$unaTabla="usuarios";
$unaId=5;//para darle un valor. Se entiende que la id ha de ser dinamica

borrar_registro($unaTabla$unaId); 
En este ejemplo de funcion he puesto dos parametros: tabla (porque normamente una bbdd tiene varias tablas) y una id (o el valor de un campo en concreto.) Tambien podrias pasarle el parametro de campo y recorrerlo mediante un switch.

Despues se tendrian que hacer las funciones de insert, update...las que quieras. Y mediante un include, las anyades a tus archivos php
__________________
=>=>=>=>=>=>=>=>=>=>=>=>=>
¡Disidente!
Frente Popular de Judea, Life of Brian
  #12 (permalink)  
Antiguo 23/06/2009, 08:20
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: ¿Separar sentencias MySql de php?

Es muy diferente una separacíon de capas a separa las sentencias SQL del código, en alguna de las capas de programación debes de realizar las consultas.

El concepto MVC (que es el que yo creo te menciono tu profesor) es un modelo de tres capas de diseño, todas ellas en PHP, cada una con una tarea específica.

Te recomiendo leas la Wiki para que veas lo que es la teoría del MVC.

Saludos.
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 20:08.