Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] pdo datenbankverbindung in jeder funktion?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] pdo datenbankverbindung in jeder funktion?

    ich möchte eine externe dbank.php, in der alle datenbank-funktionen aufgeführt sind und bei bedarf auf anderen seiten aufgerufen werden können. diese dbank.php wird in die jeweiligen anderen seiten mit require integriert. muss ich in jeder funktion eine datenbankverbindung herstellen, wenn ich mit PDO arbeite? also:
    PHP-Code:
    function login($parameter) {
       try {
          
    $db = @new PDO("mysql:host=localhost;dbname=mydb","root","");
       }
       catch(
    PDOException $e) {
          echo 
    "keine verbindung zu mysql: ".$e->getMessage().".";
       }
       
    $db->execute(); //irgendwas
       
    if($parameter==blabla) {
          
    login="eingeloggt";
       }
    }
    function 
    suche($parameter) {
       try {
          
    $db = @new PDO("mysql:host=localhost;dbname=mydb","root","");
       }
       catch(
    PDOException $e) {
          echo 
    "keine verbindung zu mysql: ".$e->getMessage().".";
       }
       
    $db->execute(); //irgendwas
       
    if($parameter==blabla) {
          
    gesucht="gefunden";
       }

    muss ich also in jeder funktion ein neues PDO erstellen, um mit der datenbank arbeiten zu können?

  • #2
    Nein, Du kannst auch das selbe PDO-Objekt in den Funktionen/Methoden verfügbar machen. Als Parameter der Funktion, als Property des Objekts, über ein Singleton oder oder oder.

    Kommentar


    • #3
      @david, du meinst so?:

      PHP-Code:
      function db() {
         try {
            
      $db = @new PDO("mysql:host=localhost;dbname=mydb","root","");
         }
         catch(
      PDOException $e) {
            echo 
      "keine verbindung zu mysql: ".$e->getMessage().".";
         }
      }
      function 
      login($parameter,db()) {
         
      $db->execute(); //irgendwas
         
      if($parameter==blabla) {
            
      login="eingeloggt";
         }

      Kommentar


      • #4
        Du kannst in der Funktionsdeklaration keine Funktion als Parameter angeben.
        Wenn Du es als Parameter der Funktion übergeben willst, dann so
        PHP-Code:
        function login($parameter$db) {
          
        $db->execute(); //irgendwas
          
        if($parameter==blabla) {
            
        login="eingeloggt";
          }
        }


        try {
          
        $db = @new PDO("mysql:host=localhost;dbname=mydb","root","");
          
        login('foo'$db);
        }
        catch(
        PDOException $e) {
          echo 
        "keine verbindung zu mysql: ".$e->getMessage().".";

        Kommentar

        Lädt...
        X