2010-05-21 12 views
28

Appena iniziato a usare mysqli. Se sto lavorando con insiemi di dati di piccole dimensioni su piccoli siti Web (per quanto riguarda il traffico), ho davvero bisogno di usarli tutto il tempo?

$result->close(); 
$mysqli->close(); 

Inoltre, per qualcuno che fa PHP personalizzato e lavorare MySQL senza un quadro, è il modo preferito mysqli generale di interagire con MySQL?

risposta

3

Si dovrebbe prendere l'abitudine di eseguire correttamente la pulizia (la chiamata viene chiusa non appena terminata) o le perdite di risorse possono accumularsi gradualmente fino a quando non influiscono sulle prestazioni.

Per quanto riguarda il livello DB, l'apprendimento PDO dovrebbe essere utile perché è ben progettato e compatibile con tutti i principali database.

+0

+1 a buone pratiche e pulizia. -1 a pdo. Se non ce n'è davvero bisogno, aggiunge semplicemente un altro strato di compexity. – PatomaS

28

PHP chiuderà tutti i file aperti e le connessioni DB alla fine dello script. È buona pratica farlo manualmente quando hai finito con le connessioni, ma non è un disastro se non lo fai. Se hai una connessione DB che verrà utilizzata nell'intero script, puoi anche lasciarla aperta.

+1 sulla PDO

+0

Lo lascerò qui ... http://php.net/manual/en/mysqli.persistconns.php – solgar

16

ho sentito un aggiornamento a questo thread era necessario ...

Secondo la documentazione corrente, è necessario utilizzare sempre $ mysql> kill() in aggiunta a $ mysql > close().

$thread = $mysqli->thread_id; 
$mysqli->kill($thread); 
$mysqli->close(); 

(Come nota a margine, ho chiesto agli sviluppatori Oracle sull'utilizzo DOP con MySQL e hanno scoraggiato esso. Usano MySQLi esclusivamente. DOP non è stato mantenuto e che non supporta molte delle caratteristiche attuali di MySQL.) Modifica: commento obsoleto.

Modifica: commutato l'ordine delle istruzioni, come suggerito.

+3

come accennato prima, è una buona pratica fare la pulizia, ma la documentazione, per quanto mi riguarda sapere, al momento di scrivere questo, non dice che dovresti usarlo. +1 per le buone pratiche. – PatomaS

+1

La richiesta di DOP sembra alquanto dubbia per me, e sono abbastanza sicuro che vedrete i timestamp recenti sui file relativi a PDO nel loro repository GitHub. Hai prove concrete per sostenerlo? – GordonM

+3

Oltre a ciò che @GordonM menziona, manca il riferimento nella risposta riguardo al fatto che * "dovresti sempre usare $ mysql-> kill()" *. – hakre