Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/01/2012, 18:45
ccsaiKo
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 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. !