FAQ
Hola a todos,


Necesito enviar a MySQL una transacción que tiene la forma:

BEGIN;
UPDATE salesopportunity SET date_exported = NOW(), inmutable = '1',
WHERE id IN (".$ids_expiradas.");
COMMIT;

la variable $ids_expiradas puede contener hasta 1 millón de ids, con lo
cual esa transacción puede tardar en ejecutarse algunos minutos.

Para enviar esa transacción al motor estoy usando la función:
mysqli_multi_query()

El problema que tengo es que si la sintaxis de la query está bien, el
motor la acepta, y luego sigue la ejecución del script, sin saber si
efectivamente la transacción se completó correctamente.

Alguna idea sobre como tener un control de errores con esto?

Abrazos
--
José C. Massón

.: Rebeldes Stereotipos
Sábados 15 a 17 hs FM La Tribu 88.7 MHz
rebeldes.org.ar

Search Discussions

  • Sergio Andres Vargas Bautista at Jul 11, 2011 at 6:35 pm
    Buen día,

    Trata de enviar una ID a la vez, así te aseguras de que se hagan las
    actualizaciones y liberaras el servidor de datos y aplicaciones de carga
    innecesaria.

    Cordial Saludo

    ---
    *SERGIO ANDRES VARGAS BAUTISTA
    Tecnólogo en sistemas
    Celular: *3166522477
    *Pin BlackBerry: *261D2694
    *Skype: *segan81



    2011/7/11 "José C. Massón" <[email protected]>
    Hola a todos,


    Necesito enviar a MySQL una transacción que tiene la forma:

    BEGIN;
    UPDATE salesopportunity SET date_exported = NOW(), inmutable = '1',
    WHERE id IN (".$ids_expiradas.");
    COMMIT;

    la variable $ids_expiradas puede contener hasta 1 millón de ids, con lo
    cual esa transacción puede tardar en ejecutarse algunos minutos.

    Para enviar esa transacción al motor estoy usando la función:
    mysqli_multi_query()

    El problema que tengo es que si la sintaxis de la query está bien, el
    motor la acepta, y luego sigue la ejecución del script, sin saber si
    efectivamente la transacción se completó correctamente.

    Alguna idea sobre como tener un control de errores con esto?

    Abrazos
    --
    José C. Massón

    .: Rebeldes Stereotipos
    Sábados 15 a 17 hs FM La Tribu 88.7 MHz
    rebeldes.org.ar

    --
    PHP Spanish Localization Talk Mailing List (http://www.php.net/)
    To unsubscribe, visit: http://www.php.net/unsub.php
  • José C. Massón at Jul 11, 2011 at 7:57 pm

    El 11/07/11 15:35, Sergio Andres Vargas Bautista escribió:
    Buen día,

    Trata de enviar una ID a la vez, así te aseguras de que se hagan las
    actualizaciones y liberaras el servidor de datos y aplicaciones de carga
    innecesaria.
    Justamente, NO quiero enviar de una id por vez, porque eso tarda
    muchisimo más.

    Igual lo acabode solucionar de la siguiente forma:

    -------------------------------------------------------------
    // Ejecutar la actualización en la DB.
    $begin = "BEGIN;";
    $commit = "COMMIT;";

    $db = DBManagerFactory::getInstance();
    $up = $db->query($begin, $dieOnError = true );
    echo "\nEjecutando transacción de actualización de oportunidades en DB...";
    $up = $db->query($actualizacion_oportunidades, $dieOnError = true );
    $up = $db->query($commit, $dieOnError = true );
    -------------------------------------------------------------

    El método $db->query usa internamente mysqli_query() que espera a que
    termine cada query.

    Saludos
    --
    José C. Massón

    .: Rebeldes Stereotipos
    Sábados 15 a 17 hs FM La Tribu 88.7 MHz
    rebeldes.org.ar

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedJul 11, '11 at 3:35p
activeJul 11, '11 at 7:57p
posts3
users2
websitephp.net

People

Translate

site design / logo © 2023 Grokbase