Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290

    JSON, PHP, MYSQL chiudere la connessione?

    Posto qui anche se è un argomento piuttosto trasversale penso sia principalmente materiale PHP.

    Allora dato uno script PHP (tipo questo, metto le parti principali)

    codice:
    <?php
    ...
    $db = mysql_connect(MYSQL_HOSTNAME, MYSQL_USER, MYSQL_PASSWORD) or 
        die...
    
    mysql_select_db(MYSQL_DATABASE, $db) or die(mysql_error($db));
    
    $return_arr=array();
    $nome=$_GET['q'];
    $sql='select id,luogo,ditta from test where (ditta like "%'.mysql_real_escape_string($nome).'%")  order by ser desc limit 10';
    $fetch=mysql_query($sql);
    while($row=mysql_fetch_array($fetch, MYSQL_ASSOC)){
    array_push($return_arr,$row['id'].' '.$row['ditta'].' '.$row['luogo']);
    }
    
    mysql_close($conn);
    echo json_encode($return_arr);
    
    
    ?>
    che viene chiamato più volte da un javascript per fare tante belle cose (popolare via ajax una listbox di ricerca parziale) c'è quel

    mysql_close che mi lascia un pochino perplesso.
    E' bene che ci sia, oppure no?

    Questo script viene chiamato parecchie volte di seguito, mentre l'utente scrive sulla tastiera, mi chiedo quindi se

    1) la connessione va chiusa
    2) esiste un modo per definire una connessione "globale", ovvero che NON debba essere aperta tutte le volte (...mysql_connect...select_db)
    3) se i punti 1 e 2 hanno un senso, ovvero - visto che sono eseguiti dal server e non dal client-telefono - se alla fin fine fanno risparmiare poco o niente. Anche se il server è in effetti pessimo (un atom)... val la pena di migliorare questo "apri-e-chiudi" , oppure no?


  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    la connessione va chiusa
    Che ci sia o meno, viene chiusa comunque implicitamente alla fine dello script.
    E' comunque una buona cosa chiuderla esplicitamente quando non ti serve più. (si possono fare le stesse considerazioni ad esempio per session_write_close )
    esiste un modo per definire una connessione "globale", ovvero che NON debba essere aperta tutte le volte (...mysql_connect...select_db)
    Si, si chiamano connessioni persistenti: http://php.net/manual/it/features.pe...onnections.php
    Se ti prendi il tempo di leggere un po' di questa funzione capirai che non vale la pena di utilizzarla.
    val la pena di migliorare questo "apri-e-chiudi" , oppure no?
    No, non ne vale la pena. Assolutamente. Non essere di quelle persone che si chiedono quale funzione usare tra print o echo per ottimizzare la velocità, e poi hanno un triplo join e non utilizzano un acceleratore come apc

  3. #3
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    Come vedi il problema me lo sono posto (in realtà me ne sto ponendo anche degli altri )
    Non so cosa sia un acceleratore apc, o meglio ho guardato sul sito php e sembra essere un non so che.
    Tuttavia uso hosting supereconomici, non credo siano disponibili.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.