Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Chiarimento sintassi query

    Ciao a tutti,
    ho questa query:
    $_GET['sel'] è un array
    Codice PHP:
    $res mysql_query("DELETE FROM tabella WHERE tabella_id IN ({$_GET['sel']})"); 
    ma non mi è chiara questa sintassi: IN ({$_GET['sel']}).
    1.Non capisco l'uso delle parentesi { } e a cosa servono?
    2.E' possibile riscrivere quella porzione di codice con una sintassi alternativa, più chiara e e semplice?
    Grazie a tutti

  2. #2

  3. #3
    Grazie di aver risposto, ma la mia domanda era (non cosa fa la query, che lo so), ma come modificare la sintassi, o ancora meglio capire l'uso delle parentesi graffe.

  4. #4
    up

  5. #5
    serve ad "isolare" il contenuto rispetto al contesto. Forse non e' il modo corretto di precisarlo ma e' efficace. Ci sono tre modi per passare un stringa contenuta in una variabile/array in un contesto, e sono i seguenti:

    codice:
    // isolando la variabile con le graffe in modo da utilizzare la sintassi con apici 
       sugli indici associativi come se fosse concatenata con il punto. Questo modo 
       permette di trattare sempre gli array con lo stesso criterio ed e' il modo 
       preferito da molti programmatori.
    
    "... WHERE campo = '{$_GET['sel']}' "
    
    // inserendo la variabile stringa in un valore delimitato da doppi apici. 
       In questo caso non ci vogliono apici agli indici associativi.
    
    "... WHERE campo = '$_GET[sel]' "
    
    // Uscire dal costruttore e concatenare la stringa tramite la notazione punto.
       Personalmente la ritengo la peggiore perche' la meno leggibile dall'umano.
    
    "... WHERE campo = '".$_GET['sel']."' "
    Quale e' piu' performante? .... Assolutamente lo stesso. Solo microscopiche differenze.
    A questo punto usa quella che ritieni tu la piu' leggibile. Tanto per il parser fa lo stesso.

    Rimane sempre che mettere un _GET direttamente nella query e' un atto di fede e di speranza nella carita' dello user.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Grazie piero.mac!

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.