2010-05-21 7 views
28

Ich begann gerade mit mysqli. Wenn ich mit kleinen Datensätzen auf kleinen Websites arbeite (verkehrsmäßig), muss ich diese dann wirklich ständig nutzen?

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

Auch für jemanden tun benutzerdefinierte PHP und MySQL Arbeit ohne einen Rahmen, ist mysqli die allgemeine bevorzugte Art und Weise mit MySQL zu interagieren?

Antwort

3

Sie sollten es sich angewöhnen, die Bereinigung richtig durchzuführen (wenn Sie schließen, sobald Sie fertig sind), oder die Ressourcenlecks können sich allmählich ansammeln, bis sie die Leistung beeinträchtigen.

Soweit was DB Schicht, Lernen PDO sollte sich lohnen, denn es ist gut entworfen und kompatibel mit allen wichtigen Datenbanken.

+0

+1 zu guten Praktiken und Aufräumen. -1 zu PDO. Wenn es keine wirkliche Notwendigkeit dafür gibt, fügt nur eine andere Schicht von complexity hinzu. – PatomaS

28

PHP wird alle offenen Dateien und DB-Verbindungen am Ende des Skripts schließen. Es ist eine gute Übung, es manuell zu machen, wenn Sie mit den Verbindungen fertig sind, aber es ist kein Desaster, wenn Sie das nicht tun. Wenn Sie eine DB-Verbindung haben, die im gesamten Skript verwendet wird, können Sie sie auch offen lassen.

+1 auf PDO

+0

Ich werde es einfach hier lassen ... http://php.net/manual/en/mysqli.persistconns.php – solgar

16

ich ein Update auf diesen Thread Filz war nötig ...

Nach aktuellen Dokumentation, sollten Sie immer mysql- $ verwenden> kill() zusätzlich zu $ ​​mysql- > Schließen().

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

(Als Randbemerkung, fragte ich Oracle Entwickler über PDO mit MySQL und machten sie es. Sie MySQLi ausschließlich verwenden. PDO nicht gepflegt worden ist, und es bietet keine Unterstützung für viele der aktuellen Funktionen von MySQL.) Bearbeiten: veralteter Kommentar.

Bearbeiten: wechselte die Anweisung Reihenfolge, wie vorgeschlagen.

+3

wie bereits erwähnt, ist es gute Praxis, Ihre eigenen Aufräumarbeiten zu tun, aber die Dokumentation, soweit ich Wissen Sie, zum Zeitpunkt des Schreibens dieses, erwähnt nicht, dass Sie es verwenden sollten. +1 für eine gute Übung – PatomaS

+1

Die PDO-Behauptung erscheint mir bestenfalls zweifelhaft, und ich bin mir ziemlich sicher, dass Sie in ihrem GitHub-Repo die letzten Zeitstempel für PDO-bezogene Dateien sehen würden. Haben Sie Beweise dafür? – GordonM

+3

Zusätzlich zu dem, was @GordonM erwähnt, fehlt in der Antwort der Hinweis, dass * "Sie immer $ mysql-> kill()" verwenden sollten. – hakre