Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    mysqli prepared statement apre una transazione?

    Ciao a tutti, vorrei chiedervi una cosuccia, magari due
    Quando si fa il prepared statement con mysqli, viene aperta una transazione?
    Esempio:
    Codice PHP:
    //si apre la transazione
    $sql $link->prepare("INSERT INTO tabella");

    //e qui viene fatta la COMMIT?
    $sql->execute(); 
    Grazie ragazzi

  2. #2

  3. #3
    Quote Originariamente inviata da k.b Visualizza il messaggio
    No
    Perfetto, grazie!

  4. #4
    Non mi è tanto chiara questa parte:
    Codice PHP:
    // definizione della variabile per la sostituzione del placeholder
    $pst->bind_param('i'$num);
    // valorizzazione della variabile per l’esecuzione   
    $num 1
    Perchè prima si definiscono le variabili da sostituire e solo dopo le si deve valorizzare?

  5. #5
    bind_param crea un collegamento tra un parametro della query e una variabile. Il punto e' che il collegamento e' fatto con la variabile stessa, non con il suo valore, quindi quando la query viene eseguita prendera' il valore che quella variabile ha al momento dell'esecuzione (e non al momento del bind).

  6. #6
    Non pensavo che ad una funzione le si potesse passare delle variabili non settate...stai distruggendo tutte le mie credenze

  7. #7
    Visto che usi mysqli e quindi ti interessa un approccio al database piu' strutturato rispetto alle vecchie mysql_* ti consiglio di fare il salto vero e passare a PDO.

  8. #8
    Quote Originariamente inviata da k.b Visualizza il messaggio
    Visto che usi mysqli e quindi ti interessa un approccio al database piu' strutturato rispetto alle vecchie mysql_* ti consiglio di fare il salto vero e passare a PDO.
    Lo farò sicuramente, prima però volevo capirci qualcosa con le funzioni mysqli

  9. #9
    Quote Originariamente inviata da camionistaxcaso Visualizza il messaggio
    Non pensavo che ad una funzione le si potesse passare delle variabili non settate...stai distruggendo tutte le mie credenze
    Per chiarire meglio, il punto e' che il problema delle variabili non inizializzate si presenta quando vuoi accedere al loro valore, ma bind_param non lo fa, usa solo una reference a quella variabile. Guarda questo esempio di codice:

    Codice PHP:
    <?php
    class Archive {

        private 
    $parameter;

        public function 
    bind(&$var) {
            
    $this->parameter = &$var;
        }
        public function 
    getParameter() {
            return 
    $this->parameter;
        }

    }

    $archive = new Archive;
    $archive->bind($foo);

    var_dump($archive->getParameter());

    $foo 'nuovo valore';

    var_dump($archive->getParameter());
    al momento del bind $foo non e' definita e il primo var_dump mostra NULL, dopo viene valorizzata la variabile e il secondo var_dump mostra correttamente il contenuto

  10. #10
    Direi che sei stato chiarissimo. Grazie 1000!

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.