Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

consulta a bd

Estas en el tema de consulta a bd en el foro de Frameworks y PHP orientado a objetos en Foros del Web. hola bueas que tal tngo n problemilla aqui estoy en symfony 1.0.19 estoy haciendo una consulta de este estilo $conexion = Propel::getConnection(); $consulta = 'SELECT ...
  #1 (permalink)  
Antiguo 18/05/2009, 08:20
 
Fecha de Ingreso: enero-2009
Mensajes: 141
Antigüedad: 15 años, 4 meses
Puntos: 1
consulta a bd

hola bueas que tal tngo n problemilla aqui estoy en symfony 1.0.19 estoy haciendo una consulta de este estilo

$conexion = Propel::getConnection();
$consulta = 'SELECT aspirante.*, estado.*, aspirante.id AS cedula '.
' FROM aspirante, aspirante_preseleccionado, estado'.
' WHERE'.
' aspirante.lugar_nacimiento_estado_id = estado.id AND '.
' aspirante.id ='.$cedula.' AND'.
' aspirante_preseleccionado.aspirante_id ='.$cedula.' ';
$sentencia = $conexion->prepareStatement($consulta);
$resultado = $sentencia->executeQuery();

el problema es q necesito validar cuando esta consulta no me trae registro intente con esto

$this->cantidad=$sentencia->rowCount();
$this->cantidad=$resultado->rowCount();

estas me dieron un error

$cantidad=count($sentencia);
y esta simplemente traiga o no registro me muestra siempre 1 y necesito saber cuando no trae registro o sea la persona no exite

de antemano gracias!!
  #2 (permalink)  
Antiguo 18/05/2009, 10:18
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 7 meses
Puntos: 48
Respuesta: consulta a bd

Código PHP:
if(empty($resultado))
{
    
$this->cantidad 1;
}
else
{
    
$this->cantidad=$resultado->rowCount();

Saludos!

PD: Cambia a Symfony 1.2 cuando puedas y como ORM te recomiendo Doctrine
  #3 (permalink)  
Antiguo 18/05/2009, 19:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 12
Antigüedad: 15 años
Puntos: 0
Respuesta: consulta a bd

Cita:
Iniciado por Synkronice Ver Mensaje
PD: Cambia a Symfony 1.2 cuando puedas y como ORM te recomiendo Doctrine
Hola, disculpa por meterme pero ¿podrías extender más la razón de tu recomendación?.

Le he estado hechando un ojo por encima a Doctrine y a Propel y he buscado comparaciones entre estos ORMs ... no he encontrado nada concluyente.

Yo he tenido algo de experiencia con Propel, y me gustó el manejo de su código, con un IDE es fácil acceder a los métodos de cada objeto, entiendo con Doctrine no sucede así. Por el contrario, el proyecto de Doctrine se ve más vivo, Propel hace rato que no se mueve, siguen con la versión 1.3 en Beta desde hace rato ... igual el especificar la Base de Datos me parece más agradable hacerlo con YAML que con los XML de Propel (y la "lata" del generador) ... pero en cuanto a rendimiento presiento es más efectivo Propel, suele ser más recomendado ...

No sé, pregunto. No he utilizado Doctrine ... además de por lo "bonito", en cuando a rendimiento, ¿es mejor que Propel?, ¿es recomendable para una aplicación mediana/grande?
  #4 (permalink)  
Antiguo 19/05/2009, 02:46
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 7 meses
Puntos: 48
Respuesta: consulta a bd

La razón principal por la que me decanté por Doctrine es que el uso de este ORM me pareció mucho mas intuitivo que Propel.

Posteriormente me alegre de la decisión tomada porque ahora es el ORM mas integrado con symfony, no se si sabrás que su creador Jonathan H. Wage lleva varios meses formando parte del equipo de Symfony lo que en resumen quiere decir que Doctrine trabaja cada vez mejor con Symfony.

Por otro lado no estoy en posición de decirte nada en cuanto a rendimiento ya que no soy ningún experto en el tema. Así que te animo que preguntes a la comunidad de Symfony en su página oficial.

Es mi humilde opinión, cualquiera puede usar los FrameWorks y ORM que mas le gusten :)

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 10:30.