Foros del Web » Programando para Internet » PHP »

mysqli->multi_query

Estas en el tema de mysqli->multi_query en el foro de PHP en Foros del Web. Hola como estan ? Bueno estoy empezando a usar las multi query de mysqli y tengo el siguiente problemilla. Por lo que tengo entendido cuando ...
  #1 (permalink)  
Antiguo 01/01/2012, 18:45
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 7 meses
Puntos: 7
mysqli->multi_query

Hola como estan ?

Bueno estoy empezando a usar las multi query de mysqli y tengo el siguiente problemilla.

Por lo que tengo entendido cuando uno saca informacion de la base de datos
se usan el store_result , more_result y next_result .

y cuando uno inserta , cambia o elimina, no es necesario estas . solo la ejecucion de la multi query : ejemplo ..

Código PHP:
$sql "select * from tabla ; select count(*) from tabla";
$mysqli->multi_query($sql);
$result $mysqli->store_result(); // aca tenemos la respuesta de la primera consulta
$row=$result->fetch_assoc();
echo 
$row[0]["id"];
if(
$mysqli->more_result()) // si existen mas consultas seguimos.
{
   
$mysqli->next_result(); cambiamos a la siguiente consulta.
   
etc...


eso es cuando hacemos consultas las cuales traen datos.
(Por lo que eh entendido hasta el momento.)

Y cuando hacemos consultas como insert, delete, update.

Basta solo con hacer ejecutar el multy query, ejemplo :

Código PHP:
$sql "insert into tabla values (valores) ; delete from tabla where id=0";
$mysql->multi_query($sql); 
Hasta aqui es lo que entiendo, si es incorrecto por favor corriganme ! :)

Ahora ,mi problema es el siguiente.

En la sql tengo 3 consultas. SELECT, UPDATE , DELETE.

$sql="select name_file from cha where fecha_ter is not null and fecha_ter<'$ahora';";
$sql.="update cha set fecha_ter=NULL,name_file=NULL where fecha_ter<'$ahora';";
$sql.="delete from cha where deta is NULL and fecha_ter is NULL and name_file is NULL;";

Como ven lo primero que hago es traer los nombres que no sean nulo y que sean menor a hora actual
Despues dejo en nulo las columnas donde la fecha sea menor a la hora actual.
y termino eliminando aquellas columnas las cuales cambie anteriormente.
(Elimino a las columnas los cuales quellos valores son nulos).

Eh aqui el problema :
Cuando se ejecuta este script las primeras dos sentencias sql se ejecutan perfecto, pero a la hora de eilimnar los campos vacios no los elimina.
Pero si actualizo la pagina, el script se ejecuta denuevo y la ultima sentencia si se ejecuta. Por lo que si elimina los campos vacios.

A alguien le ha pasado esto ? ..

Muchas gracias por tomarse el tiempo de leer este inmenso post. !

Etiquetas: mysql, sql, tabla
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 03:04.