Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Mysqli_multi_query

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085

    Mysqli_multi_query

    Ciao,
    non riesco a far funzionare una 'multy query' .. mi potete aiutare ?
    allego codice ed errore.
    Grazie mille

    Codice PHP:
    // ------------- apertura DB
    $db_host "127.0.0.1"
    $db_user "root";
    $db_password "";
    $db_name "Prova";     

    // -- connessione
    $db mysql_connect($db_host$db_user,$db_password) ;                                                         if ($db == FALSE)
       die (
    "Connessione fallita:  ".mysql_error(). " - errore sql: ".mysql_errno());
    // -- apertura
    mysql_select_db($db_name$db)  or
        die (
    "Errore in apertura database: ".mysql_error()." - errore sql: ".mysql_errno());


    // ==============================
    $url "file/backup_appoggio.sql";
    $file_carico=fopen($url,"r");
    $sql_file=fread($file_carico,filesize($url));
    fclose($file_carico);

    // --> esecuzione operazioni SQL
    if (mysqli_multi_query($db,$sql_file))
       {
    $esito 'WO' ;
         if (
    $tipo_lettura == 'GLOBALE')
            {
    $err "Elaborazione eseguita correttamente (caricate TUTTE le tabelle) !! ";}
         else
           {
    $err "Elaborazione eseguita correttamente (caricate ' .$num_tabelle_checked. ' tabelle) !! ";}     goto end;
       }
    else   
       {
        
    $esito 'KO' ;
        
    $err =     "Errore durante esecuzione SQL: " .    mysql_error() . " - " mysql_errno();    
        goto 
    end;    
       } 
    Ultima modifica di JANUS70; 06-11-2015 a 12:52

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    l'errore ..
    Io non riesco ad aprire il file ..
    In sostanza l'errore dice:

    "mysqli_multi_query expects parameter 1 to be mysqli"

    Grazie mille
    Immagini allegate Immagini allegate
    Ultima modifica di JANUS70; 06-11-2015 a 12:54

  3. #3
    Ciao,
    sei connesso tramite mysql quindi non puoi passare questo parametro a mysqli che si aspetta giustamente come parametro per interagire una connessione del tipo mysqli. Quindi dovresti connetterti al db con la giusta estenzione:

    codice:
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    codice:
    $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
    [/QUOTE]

    Grazie mille ..
    visto che il DB è già aperto con il 'vecchio' sistema (mysql_connect), esiste un'alternativa al
    al 'mysqli' per fare una multy query ?
    Oppure devo chiudere il DB e riaprirlo con 'mysqli' ?
    Grazie

  5. #5
    Per quanto sappia no, mi dispiace. Nulla di simile con mysql.

    In ogni caso la migrazione verso mysqli o meglio ancora pdo è fortemente consigliata in quanto mysql è deprecated da php 5.5.

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Ho un problemino .. :-)
    NON mi funziona la commit

    Codice PHP:
    1)
    $db->autocommit(false);
     
     ->> 
    OK

    2
    )
    $query "UPDATE ciccio
    SET descrizione =  'TTTTTTTTT ..'
    WHERE id_mandante = 1 ; "
    ;
    $query $query "UPDATE tab_1
    SET testo =  'BBHH...'
    WHERE id = 1 ; "
    ;
    if (
    mysqli_multi_query($db,$query))
      {
    $esito  'OK' ;
       
    $err "Aggiornamento eseguito corretamente  mysqli_multi_query  !!";
      }
    else
      {
       
    $esito 'KO' ;
       
    $err "Errore durante esecuzione aggiornamento SQL: " .    mysqli_sqlstate($db) .  " - "  .    mysqli_error($db);
      }
      
     ->> 
    OK

    3
    )  
    if (!
    mysqli_commit($db))
      {
    $esito 'KO';
       
    $err "Errore durante esecuzione commit SQL: " .    mysqli_sqlstate($db) .  " - "  mysqli_error($db);
       }

      ->> 
    KO ->> Errore durante esecuzione commit SQLHY000 Commands out of syncyou can't run this command now 
    Ultima modifica di JANUS70; 04-12-2015 a 16:44

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Ciao,
    qualcuno mi sa spiegare il motivo per cui con una multy_query composta da:


    drop
    declare
    insert
    drop
    declare
    insert
    ...
    ...
    ...


    La prima insert NON viene eseguita ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.