2017-06-04 1 views
0

Ich habe eine Seite, auf der ich zuerst eine Datenbankverbindung herstelle. Ich benutze dies für einige Abfragen und danach benutze ich auch einige Funktionen. Und jetzt bin ich mir nicht sicher, was die beste Vorgehensweise für eine Funktion ist: Datenbankverbindung als Argument übergeben oder eine eigene Datenbankverbindung in der Funktion erstellen?Was ist der beste Fall für eine Funktion: Datenbankverbindung in Funktion oder als Argument übergeben?

erstellen Datenbank-Verbindung in Funktion

function get_Number_of_Entries() { 
    $mysqli = new mysqli(MYSQL_HOST,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DATABASE); 
    $stmt = $mysqli->prepare("SELECT * FROM users"); 
    $stmt->execute(); 
    $stmt->store_result(); 
    $count = $stmt->num_rows; 
    $stmt->close(); 
    return $count; 
} 

Als Argument "$ stmt", Verbindung keine Datenbank in Funktion erstellt

function get_Number_of_Entries($mysqli) { 
    $stmt = $mysqli->prepare("SELECT * FROM users"); 
    $stmt->execute(); 
    $stmt->store_result(); 
    $count = $stmt->num_rows; 
    $stmt->close(); 
    return $count; 
} 
+2

1 Vote for. Übergeben Sie die Verbindung als Parameter. Das Herstellen von Verbindungen ist ein langsamer Prozess – RiggsFolly

+1

Ich würde vorschlagen, es als Argument übergeben, dann erstellen Sie nicht eine * neue * Verbindung für jedes Mal, wenn Sie die Funktion aufrufen. Aber Sie müssen es als "$ mysqli", nicht "$ stmt" übergeben. – Qirel

+0

@Qirel Danke für den Hinweis. Ich habe es korrigiert. – Martin

Antwort

2

Regel die Verbindung als Argument übergeben wird eine bessere Lösung sein. Verbindung ist es eine teure Aktion, und mehr als das, mehr als eine Verbindung kann ein echtes Problem machen. Es kann die Datenbank und viele weitere Szenarien sperren.

Ich würde empfehlen, über Singleton-Muster zu lesen: https://en.wikipedia.org/wiki/Singleton_pattern

oder Fabrikmuster: https://www.tutorialspoint.com/design_pattern/factory_pattern.htm

+0

Danke für Ihre Informationen und Ihre Hinweise. Es hilft mir, die Situation zu verstehen. – Martin

Verwandte Themen