Foros del Web » Programando para Internet » PHP »

Consultas multiples en MySql desde PHP

Estas en el tema de Consultas multiples en MySql desde PHP en el foro de PHP en Foros del Web. Hola, he estado leyendo acerca de los diferentes tipos de tablas en MySql, MyISAM, ISAM, HEAP, BDB (Base de datos Berkeley), e InnoDB, encontre que ...
  #1 (permalink)  
Antiguo 03/05/2005, 12:19
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Exclamación Consultas multiples en MySql desde PHP

Hola, he estado leyendo acerca de los diferentes tipos de tablas en MySql, MyISAM, ISAM, HEAP, BDB (Base de datos Berkeley), e InnoDB, encontre que InnoDB es la nueva moda por las ventajas que ofrece.

Sin emargo quisiera saber cual es la mas recomendable, no se, por velocidad, por seguridad, etc. Cual tipo de bases de datos es mejor para usarse si estoy programando en PHP.

Hago esta pregunta aqui, por que se trata de como utilizar estas tablas junto con PHP, esa es la razon... ahora les expliclo un problema que tengo en PHP y MySql.

Cuando necesito hacer una operacion que requiere de varias consultas me enfrento al problema de que no existe( o no la conozco ) desde php la forma de hacer varias consultas al mismo tiempo de forma atomica (trans en SQL Server), entonces es algo dificil de lograr:

Alco como:

mysql_query("look table");
mysql_query("insert tabla1 (1);
mysql_query("select maxID from tabla1");
mysql_query("update max2 set var = maxID");
mysql_query("unlock table");

Entonces tengo que hacerlo de esa forma, varias consultas encerradas en un look table para asegurar que todo es correcto, entonces necesito ver la forma de programar eso, de una manera mas facil, o bueno, si este metodo es correcto, entonces no hay problema, pero aun le miro defectos a ese codigo o posibilidades de errores. Bien, gracias por su ayuda.
  #2 (permalink)  
Antiguo 03/05/2005, 18:35
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
hola

Ya conoci TRANS, ahora, como uso un TRANS desde PHP ?

Gracias
  #3 (permalink)  
Antiguo 04/05/2005, 06:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La función mysql_query() sólo ejecuta una instrucción SQL por llamada (no así por ejemplo si usas PHP 5 junto a Mysql 4.1 en adelante y el nuevo "cliente" para mysql de las extensiones mysql[i] (www.php.net/mysqli) que si que puede ejecutar várias instrucciones en una llamada a su mysqli_query())

El procedimiento que sigues sería correcto para la situación que tienes (usando mysql_xxx() funciones).

Sobre el tema de "TRANS" no sé que es ni de que motor de BD (RDBMS) corresponde .. pero si tienes un ejemplo en "SQL" (lenguaje estructurado de consultas) que te explique como se usa .. recuerda como funciona dicha función y si corresponde tendras que usar tantos "mysql_query()" como sentencias SQL se componga el uso de dicha funcionalidad de SQL.

Un saludo,
  #4 (permalink)  
Antiguo 04/05/2005, 08:55
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Cluster, ¿Hay alguna otra solución para los que no tenemos PHP 5? (Además de cambiar de hosting, claro...)
  #5 (permalink)  
Antiguo 04/05/2005, 10:02
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Gracias.

Entonces bien, ahorita no puedo usar PHP5 como default para todos mis scripts por los diferentes hosting, etc, bien, entonces tendre que seguir usando mi metodo actual solo que ajustado a Trans verdad ?
  #6 (permalink)  
Antiguo 04/05/2005, 11:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues así es .. debes seguir como estás. Por eso salió dicha nueva extensión para usar Mysql desde PHP 5 con esas nuevas mejoras .. por qué . .como tu hay usuarios que requerían de esas funcionalidades.

Es cosa de "presionar" a los servicios de hosting para que empiecen ya a migrar a PHP 5 (y que habiliten mysqli extensiones) para ir probando lo nuevo.

Un saludo,
  #7 (permalink)  
Antiguo 04/05/2005, 11:43
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años
Puntos: 2
Ok.

Gracias.

Por lo menos de un metodo qu miraba mucho porcentaje de error, paso a tener 0% de errores por el RollBack Trnas...

Lo que pasaba con lock table, es que en medio si ocurria un error, lo unico que hacia era mandarme un e-mail con el error y luego asegurarme de correr en Unlock de las tablas para no bloquear el servicio, pero en este pedazo pues no podia arreglar errores sobre la marchar, ahora con TRANS, es el mismo metodo, me puedo mandar correos avisando que algo fallo, pero al final me aseguro de correr un ROLLBACK TRANS para saber que no se hizo ninguna de las operaciones antes.

Bien, por lo menos esto minimiza mucho los posibles errores que miraba antes... bueno gracias. Y para "Seppo", pues tendras que usar el mismo metodo que yo ahorita y optimizarlo a tu gusto.

Gracias.
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 14:46.