Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    altg
    utente che non utiene
    il 2012-05-22 23:56:53.0 alle 2012-05-22 23:56:53.0
    Trollate totali: 11540
    query parametrizzate in php
    Cioe`, mi ci son rotto la testa due ore per capire come cazzo le hanno impostate, cioe` palleggiando prima l'handle della connessione sql verso una funzione che prepara la statement e restituisce un altro handle, poi legando i parametri con un'altra chiamata ancora, poi legando altre variabili ai risultati con un'ennesima chiamata, poi chiudendo la statement, cioe` riassumendo facendo in tremila chiamate quello che altri fanno con una riga, e alla fine...

    [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 646
    [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 657
    [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 681
    [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 726
    [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 727


    Warning "statement isn't valid anymore", a casaccio, dopo che ha fatto un po' di queries (tutte con le loro risorse opportunamente liberate). Cazzo vorra` dire? E` un baco, dice Google. Era un baco nella versione 5.0.0. Poi l'hanno risolto (poco chiaro quando). Ok, proviamo l'ultima. Stesso risultato.

    Ricapitolando uno ci perde ore per capire come questi hanno implementato le parametrized queries, cioe` in una maniera che cambia tutte le carte in tavola e costringe a riscrivere parecchia roba chi non ha almeno avuto l'idea - presagendo future ripetute cazzate del genere - di farsi un piccolo substrato di funzioni di accesso al db (quanto meno non era questo il caso), e dopo tutto 'sto casino, scopre che quelle queries sono comunque buggate.

    A PHP, mavaffanculo, eh.
    • Avatar
      Scritto da
      Non Autenticato
      il 2012-05-23 00:05:39.0 alle 2012-05-23 00:05:39.0
      Re: query parametrizzate in php
      > Cioe`, mi ci son rotto la testa due ore per capire come cazzo le hanno impostate, cioe` palleggiando prima l'handle della connessione sql verso una funzione che prepara la statement e restituisce un altro handle, poi legando i parametri con un'altra chiamata ancora, poi legando altre variabili ai risultati con un'ennesima chiamata, poi chiudendo la statement, cioe` riassumendo facendo in tremila chiamate quello che altri fanno con una riga, e alla fine...
      >
      >
      [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 646
      > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 657
      > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 681
      > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 726
      > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 727

      >
      > Warning "statement isn't valid anymore", a casaccio, dopo che ha fatto un po' di queries (tutte con le loro risorse opportunamente liberate). Cazzo vorra` dire? E` un baco, dice Google. Era un baco nella versione 5.0.0. Poi l'hanno risolto (poco chiaro quando). Ok, proviamo l'ultima. Stesso risultato.
      >
      > Ricapitolando uno ci perde ore per capire come questi hanno implementato le parametrized queries, cioe` in una maniera che cambia tutte le carte in tavola e costringe a riscrivere parecchia roba chi non ha almeno avuto l'idea - presagendo future ripetute cazzate del genere - di farsi un piccolo substrato di funzioni di accesso al db (quanto meno non era questo il caso), e dopo tutto 'sto casino, scopre che quelle queries sono comunque buggate.
      >
      > A PHP, mavaffanculo, eh.

      Infatti tempo fa pensavo che avresti potuto rispondere a Cryoburner che i cambiamenti che hai fatto in Linoleum servono a evitare che diventi come PHP.
      • Avatar
        ☺
        Scritto da
        altg
        utente che non utiene
        il 2012-05-23 00:16:49.0 alle 2012-05-23 00:16:49.0
        Trollate totali: 11540
        Re: query parametrizzate in php
        > > Cioe`, mi ci son rotto la testa due ore per capire come cazzo le hanno impostate, cioe` palleggiando prima l'handle della connessione sql verso una funzione che prepara la statement e restituisce un altro handle, poi legando i parametri con un'altra chiamata ancora, poi legando altre variabili ai risultati con un'ennesima chiamata, poi chiudendo la statement, cioe` riassumendo facendo in tremila chiamate quello che altri fanno con una riga, e alla fine...
        > >
        > >
        [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 646
        > > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 657
        > > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 681
        > > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 726
        > > [client 127.0.0.1] PHP Warning:  Statement isn't valid anymore in C:\\Users\\Alex\\Alex\\anynowhere\\www\\cms\\widgets\\dbengine.php on line 727

        > >
        > > Warning "statement isn't valid anymore", a casaccio, dopo che ha fatto un po' di queries (tutte con le loro risorse opportunamente liberate). Cazzo vorra` dire? E` un baco, dice Google. Era un baco nella versione 5.0.0. Poi l'hanno risolto (poco chiaro quando). Ok, proviamo l'ultima. Stesso risultato.
        > >
        > > Ricapitolando uno ci perde ore per capire come questi hanno implementato le parametrized queries, cioe` in una maniera che cambia tutte le carte in tavola e costringe a riscrivere parecchia roba chi non ha almeno avuto l'idea - presagendo future ripetute cazzate del genere - di farsi un piccolo substrato di funzioni di accesso al db (quanto meno non era questo il caso), e dopo tutto 'sto casino, scopre che quelle queries sono comunque buggate.
        > >
        > > A PHP, mavaffanculo, eh.
        >
        > Infatti tempo fa pensavo che avresti potuto rispondere a Cryoburner che i cambiamenti che hai fatto in Linoleum servono a evitare che diventi come PHP.

        Si`, piu` che altro li faccio prima che sia tardi.
        A ogni modo, a parte il disgusto per il modo scoraggiante in cui le avrebbero rese possibili, il vaffanculo finale se l'e` chiamato il baco. Notare che avviene su righe diverse, a caso, a volte consecutive. Ttra la riga 726 e la 727, di cui abbiamo una diapositiva:

        mysqli_stmt_bind_result ($stmt, $_a, $_b);
        mysqli_stmt_fetch ($stmt);
        


        Non c'e` assolutamente nulla che possa causare la distruzione dell'oggetto $stmt. E` solo un "dammi i (due) risultati in queste variabili a e b, e poi fetcha i risultati in questione". Non c'e` una chiusura, che una volta l'errore appaia alla riga 726 e la volta dopo alla 727 (in momenti diversi) non ha proprio senso. Magari potrei provare col native driver, ma direi che mi sono spappolato i coglioni. Torno a escapare le queries nel modo meno insicuro che mi venga in mente, e chiudiamola li`, io la buona volonta` almeno ce l'avevo messa. Triste
<softv>

Pagina generata in 122 millisecondi

Utenti attivi: 13 nell'ultimo minuto, 35 negli ultimi cinque minuti, 73 negli ultimi 15 minuti