PHP FireBird Verbindung

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

  • PHP FireBird Verbindung

    Ich bin in Bezug auf PHP ein reiner Anfänger, weil ich hauptsächlich in Pascal/Delphi programmiere. Nun möchte ich per PHP auf einer FireBird-DB zugreifen, um eine simple Abfrage zu starten. Doch es scheitert bereits am Verbindungsaufbau.

    Für diesen Zweck versuchte ich 2 Möglichkeiten.

    Einmal mit der Schnittstelle class_fbird.php und der entsprechenden Anleitung auf Bitte Link folgen .

    Dann mit folgenden Code, den ich auf verschiedenen Seiten gefunden und angelesen habe.

    PHP-Code:
    <html>
      <head>   
       <title>PHP-INFO2</title>  
        </head>  
         <body>  
          <?php     

            $con 
    ibase_connect("192.168.1.17:d:\Datenbanken\TESTD3.FDB","SYSDBA""master");      
            
            
    ibase_close($con);     

          
    ?>  
         </body>  
        </html>
    Beides ohne Erfolg. Beim ersten, habe ich keine Reaktion gesehen, beim zweiten erhalte ich folgende Fehlermeldung.

    Fatal error: Call to undefined function: ibase_connect() in C:\wampp2\htdocs\index.php on line 8

    Die Fehlermeldung bezieht sich auf den Verbindungsaufbau zum Server. Es handelt sich dabei um einen Win2000 Prof. welcher den Ordner mit der entsprechenden DB freigegeben hat.

    Wieso erhalte ich keine Verbindung? Gibt es eine andere Möglichkeit? Kennt Ihr ein Tutorial für PHP-to-FireBird-Verbindungen?

    Gruß mexx2k

  • #2
    du hast die klasse vermutlich nicht eingebunden

    require("class_fbird.php");
    mfg

    Kommentar


    • #3
      Keine Veränderung! Fehlermeldung bleibt bestehen!

      Kommentar


      • #4
        Ibase-Erweiterung denn auch verfügbar?

        Hinweise unter http://www.php.net/manual/en/ref.ibase.php berücksichtigt?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          So ganz verstehe ich nicht, was Du mir diesen Link sagen willst. Weil jeder dieser dargestellten Befehle erst eine Rolle spielen, wenn ich eine Verbindung zur DB habe, jedoch scheitert es bereits daran. Selbst der dort dargestellte Code für den DB zugriff habe ich übernommen und den selben Fehler erhalten.

          Kommentar


          • #6
            Hier mal der geänderte Code und die Fehlermeldung.

            PHP-Code:
            <html>  
            <head>    
            <title>PHP-INFO2</title>  
            </head>  <body>  
            <?php   
            require("class_fbird.php");  
            $con ibase_connect("localhost:d:\Datenbanken\TESTD3.FDB","SYSDBA","master",'',0,3,'demo',0);      
            ibase_close($con);     
            ?>  
            </body>  
            </html>
            Fatal error: Call to undefined function: ibase_connect() in C:\wampp2\htdocs\index.php on line 8

            Was bedeutet das letztendlich?

            Kommentar


            • #7
              Was bitte kapierst du denn an Call to undefined function nicht?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Mir ist schon bewusst, das er die aufgerufene Funktion offensichtlich nicht kennt, aber wieso. Immerhin habe ich die Funktion von der Website. Die erklären doch nicht eine Funktion, die es nicht gibt?!

                Kommentar


                • #9
                  Original geschrieben von mexx2k
                  Immerhin habe ich die Funktion von der Website. Die erklären doch nicht eine Funktion, die es nicht gibt?!
                  Wäre es vielleicht möglich, dass auch die Bedienungsanleitung eines Porsche 911 ein Auto beschreibt, das du zwar nicht hast - das es aber trotzdem geben könnte?

                  Also, RTFM - den Link zum Manual hab ich dir ja nicht umsonst genannt.
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Folgender Stand er Dinge.

                    Dies ist der Code:

                    PHP-Code:
                    <html> 
                    <head> 
                      <title>PHP-INFO2</title> 
                    </head> 
                    <body> 
                    <?php 
                    require("class_fbird.php"); 

                    $db = new fbird
                      
                    "localhost:d:/Datenbanken/TESTD3.FDB"
                      
                    "SYSDBA""master"); 

                    $db->set_debug(TRUE); 

                    $erg=$db->query("select * from personal"); 
                    $spalte=$db->fetch_row($erg); 
                    echo 
                    $spalte[0]; 
                      

                    $debug_meldungen=$db->get_debug(); // Speichern der Meldungen in $debug_meldungen 
                    echo $db->show_debug(); // Direkte Ausgabe als HTML-Liste 

                    $db->close(); 

                     
                    ?> 
                    </body> 
                    </html>
                    Die Quelle:
                    http://www.rrze.uni-erlangen.de/dien...eispiele.shtml

                    Der Fehler:
                    Ich erhalte die Meldung, dass die SQL ausgeführt wird, jedoch sehe ich kein Ergebniss. Auch ein Update ändert in der DB nix.

                    Kommentar


                    • #11
                      Vorhin hat dir PHP "Call to undefined function: ibase_connect()" um die Ohren gehauen. Weil du keine Ahnung hast, verläßt du dich jetzt auf diese Klasse, die du ganz offensichtlich gar nicht verstehst. Sonst wäre dir nämlich aufgefallen, dass sie im Konstruktor
                      PHP-Code:
                      function fbird(...) {
                          
                      $this->link=@ibase_connect (...) or $this->connectionFailure(...);

                      auch nur ibase_connect() aufruft.
                      Nur woher soll PHP die Funktion plötzlich kennen?

                      Lies den Abschnitt "Installation" auf http://php.net/ibase - dem Link, den dir schon Wahsaga gab!

                      Kommentar


                      • #12
                        Ich habe mir den Page angesehen. Selbst die Beispiele enthalten den Befehl ibase_connect(). Ich kann aus der Page nix herrauslesen, was mir erklärt, wie ich dem PHP diese Funktion erkläre.

                        Wahrscheinlich gehe ich mit einem ganz falschen Verständnis an PHP herran. Zumindest ist es weit von Pascal entfernt. Man muss die Funktion dich irgendwo definieren?! ibase_connect ist doch der Name einer Funktion welche selbst einen code enhält.

                        Ist diese Funktion in einer anderen Datei ausgelagert?
                        Muss man die Funktionen, die man verwenden will, wie eine Unit hinzufügen?
                        Wie bringe ich meinem PHP diese Funktion bei? Und bitte verweist nicht auf diese Page. Ihr müsste doch langsam mitbekommen haben, dass ich Neuling bin und mehr als nur einen Link brauche. Dazu ist doch auch ein Forum da, oder nicht? Wenn mir die Erklärungen auf irgendeiner Page geholfen hätten, wäre ich nicht hier.

                        Kommentar


                        • #13
                          er hat wamp, also windows.

                          in php.ini muss php_interbase.dll aktiviert werden. (; weg)

                          in den extension-ordner (wo ist er?) muss php_interbase.dll gespeichert werden. das muss er zusätzlich aus der .zip distribution von der php-webseite holen. Ob sein wamp das hat weiss ich nicht , aber aus diesem thread ist schon klar(98%) dass nicht. Jedenfalls das .exe von der php-webseite installiert es nicht (100%).

                          vielleicht ists bei wAmp (Apatche) nochmals etwas anders als beim php-cgi .
                          Zuletzt geändert von mai; 13.06.2006, 13:25.

                          Kommentar


                          • #14
                            in php.ini muss php_interbase.dll aktiviert werden.

                            Ist weit vor deinem Eintrag geschehen.


                            in den extension-ordner (wo ist er?) muss php_interbase.dll gespeichert werden.

                            Ebenfalls vorhanden!
                            Zuletzt geändert von mexx2k; 13.06.2006, 13:27.

                            Kommentar


                            • #15
                              PHP besteht aus einem Kern und beliebig vielen Erweiteren (Extensions).
                              Welche davon auf deinem System vorhanden sind, verrät ein Blick in das Verzeichnis, das in der php.ini als extension_dir angegeben ist.
                              Ist eine Extension vorhanden, muß sie nur noch geladen werden. Das erfolgt ebenfalls in der php.ini mit einer Anweisung "extension extension_file". Die Kontrolle erfolgt durch phpinfo().

                              Bei dir scheint die Extension ibase entweder völlig zu fehlen oder zumindest nicht geladen zu sein.
                              Deswegen kennt dein PHP keine der ibase_*-Funktionen.

                              Die Sache mit den Extensions ist tatsächlich in etwa vergleichbar mit dem Laden von Units bei Pascal. Allerdings wird bei PHP zentral festgelegt, welche Module geladen werden sollen, statt zu Beginn eines Scripts. (Das geht auch, siehe dl().)

                              EDIT:
                              Nach jeder Änderung an der php.ini muß der Webserver neu gestartet werden, damit die Änderungen übernommen werden!
                              Zuletzt geändert von onemorenerd; 13.06.2006, 13:28.

                              Kommentar

                              Lädt...
                              X