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...
}
(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);
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. !