Tengo una serie de consultas, las que quiero ejecutar son dos, pero para efectos de prueba he "rellenado" con los selects para crear un escenario y resulta que el insert es el que "debería" de fallar pero la posición de $i no corresponde en éste caso al 4.
Leí unos artículos y no se recomienda el uso de multi_query si se necesita un dato anterior; supongo por el motivo de ese issue que no sé cómo cachar el número del query que no se ejecutó. Hago ésta pregunta con el fin de resolver mi duda, cambiaré a consultas por separado pero no me quiero quedar con la duda.
$statements = array("UPDATE productos SET precioID = $productID WHERE id = $productID",
"SELECT * FROM productos WHERE id = 1",
"SELECT * FROM productos WHERE id = 2",
"SELECT * FROM productos WHERE id = 3",
"INSERT INTO precios (id, publico, constructor, socio) VALUES ($productID, $publico, $constructor, $socio)","SELECT * FROM producto WHERE id = 4");
if ($getConnection->multi_query(implode(';', $statements))) {
$i = 0;
do {
if ($result = $getConnection->store_result()) {
// store first result set
if ($result = $getConnection->store_result()) {
while ($row = $result->fetch_row()) {
// do something with the row
}
$result->free();
} else {
// report error
}
}
$i++;
} while ($getConnection->next_result());