Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329

    msqli: nel mysqli->prepare si possono impostare più query di fila?

    Come da titolo, volevo capire se si può fare una cosa del genere:

    codice:
    mysqli->prepare(insert into ...3 param..; inserto into...2 param..);
    mysqli->bind_param("sssss", 1, 2, 3, 4, 5);
    O devo farle solo dopo il primo mysqli->execute() ???

    Grazie.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  2. #2


    mah dubito che il prepare sia così flessibile, io voto per una query per volta... fai una prova, se funge magari dai un feedback
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Si è vero non si può fare, ma volevo caipre, se faccio più prepare l'operazione non risulta essere atomica???
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  4. #4
    Su mysqli credo che tu possa provare con mysqli_multi_query().
    http://www.php.net/manual/en/mysqli....-statement.php
    http://www.php.net/manual/en/mysqli.multi-query.php
    A occhio sembrerebbe la soluzione al tuo problema, poi magari mi sbaglio, ma tentar non nuoce .
    Fare o non fare....non c'è provare!

  5. #5
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Eh ma non so se posso usare i prepare di mysqli che sono utili per evitare l'injection, o anche con il mysqli->multiquery si evita???
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  6. #6
    Originariamente inviato da Donovant
    Si è vero non si può fare, ma volevo caipre, se faccio più prepare l'operazione non risulta essere atomica???
    ma il prepare mica la esegue la query
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Lo so, infatti mi servirebbe fare una query del genere

    Codice PHP:
    "select (count(*)+1) num from tbl1"
    //il risultato inserirlo in 
    "insert into tbl1 (id) values (risultato_sopra".stringa.")" 
    Il tutto deve essere svolto in modo atomico.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  8. #8
    Originariamente inviato da Donovant
    Lo so, infatti mi servirebbe fare una query del genere

    Codice PHP:
    "select (count(*)+1) num from tbl1"
    //il risultato inserirlo in 
    "insert into tbl1 (id) values (risultato_sopra".stringa.")" 
    Il tutto deve essere svolto in modo atomico.

    codice:
    insert into tbl1(id) select count(*)+1 as num from tbl1 where tuocampo = ?
    o come fa mysql a fare insert into select. Una esecuzione, due query.

    PS: l'atomicità non è assicurata neanche qui, nel senso che come penso tu la intenda, hai comunque problemi di concorrenza perché due insert nello stesso istante potrebbero darti lo stesso id e quindi errore. E cmq non si danno gli id così perchè non è detto che count(*)+1 ti dia un id libero (basta cancellare un id < del max(id) e al successivo inserimento avresti due id uguali)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  9. #9
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    No perchè concatenato all'id numerico c'è una stringa univoca
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  10. #10
    Originariamente inviato da Donovant
    No perchè concatenato all'id numerico c'è una stringa univoca
    se la stringa è univoca che te frega del count(*)+1 allora? Cmq fai due query o trova il modo di concatenare quella stringa univoca col count(*)+1 ( non so se una espressione del tipo count(*)+1 || tuastringaunivoca si possa fare, potresti provare). tuastringaunivoca non la passi come parametro al prepare ma la inserisci proprio nella query
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.