AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Interbase XE3 server via PHP
Thema durchsuchen
Ansicht
Themen-Optionen

Interbase XE3 server via PHP

Ein Thema von stefanhtt · begonnen am 11. Mai 2015 · letzter Beitrag vom 18. Mai 2015
Antwort Antwort
stefanhtt

Registriert seit: 11. Mai 2015
7 Beiträge
 
#1

Interbase XE3 server via PHP

  Alt 11. Mai 2015, 10:30
Datenbank: InterBase • Version: XE3 • Zugriff über: PHP
Hallo,

ich habe das Problem, dass ich auf einen Interbase XE3 server zugreifen muss via PHP und bekomme es einfach nicht hin.

follgendes habe ich versucht:

ibase_connect (via Firebird 2.5):


Code:

$db = 'localhost:D:\xxx\xxx.IB';
$username='SYSDBA';
$password='masterkey';
 
$dbh = ibase_connect ( $db, $username, $password ) or die ("errors in db connect");
Fehlermeldung: Warning: ibase_connect(): unsupported on-disk structure for file D:\xxx\xxx.IB; found 11.2, support 11.2 in C:\xampp\htdocs\index.php on line 11

Des weiteren habe ich natürlich das Problem, wenn gleichzeitig eine Verbindung mit der IBConsole besteht, dass dann sofort ein IO-Fehler kommt. Deshalb würde mir die Lösung nicht gefallen.

des weiteren habe ich versucht das ganze mittels ODBC laufen zu lassen und habe den Treiber ODBC von Embarcadero installiert. Dann natürlich meinen PHP-Code abgeändert:

Code:
$user = 'SYSDBA';
$pass = 'masterkey';
$server = 'localhost:D:\xxx\xxx.IB';

// No changes needed from now on
$connection_string = "DRIVER=InterBase ODBC driver; UID=SYSDBA; PWD=masterkey; DBNAME=localhost:D:\xxx\xxx.IB;";

$conn = odbc_connect($connection_string,$user,$pass);

if ($conn) {
    echo "Connection established.";
} else{
    die("Connection could not be established.");
}

das liefert mir dann:
Warning: odbc_connect(): SQL error: [ODBC InterBase Driver]connection rejected by remote interface, SQL state 08004 in SQLConnect in C:\xampp\htdocs\index.php on line 42
Connection could not be established.

Mache ich grundsätzlich was falsch?

Gibt es eine Möglichkeit via PHP direkt mit dem Interbase XE3 Server zu kommunitzieren oder ginge das nur mittes Firebird Server und auf die Datenbankdatei?

ich hoffe es kann mir jemand helfen!

Danke Stefan

Geändert von TBx (18. Mai 2015 um 08:23 Uhr) Grund: Titel korrigiert
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

AW: Interbase X3 server via PHP

  Alt 11. Mai 2015, 15:26
Fehlermeldung: Warning: ibase_connect(): unsupported on-disk structure for file D:\xxx\xxx.IB; found 11.2, support 11.2 in C:\xampp\htdocs\index.php on line 11
Ich hab zwar von PHP überhaupt keine Ahnung. Aber ich kann Dir sagen, dass die Meldung darauf hinweist, dass die Datenbankdatei mit einer neueren Version von Interbase (Firebird) erstellt wurde, als die Clientlibrary, mit der zu versuchst drauf zuzugreifen, verarbeiten kann.
Oder die installierte Serverversion passt nicht zu der Datei.
Jens
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Interbase X3 server via PHP

  Alt 11. Mai 2015, 17:09
Also ich hab irgendwie den Eindruck, man versucht mittels einer Firebird-Library auf einen Interbase-Server zuzugreifen. Interbase und Firebird sind jedoch nicht dasselbe und haben sich bereits vor längerer Zeit auseinanderentwickelt.
  Mit Zitat antworten Zitat
stefanhtt

Registriert seit: 11. Mai 2015
7 Beiträge
 
#4

AW: Interbase X3 server via PHP

  Alt 11. Mai 2015, 19:57
Hallo,

Danke euch fur die Antwort!

Zitat:
Aber ich kann Dir sagen, dass die Meldung darauf hinweist, dass die Datenbankdatei mit einer neueren Version von Interbase (Firebird) erstellt wurde, als die Clientlibrary, mit der zu versuchst drauf zuzugreifen, verarbeiten kann.
Zitat:
Also ich hab irgendwie den Eindruck, man versucht mittels einer Firebird-Library auf einen Interbase-Server zuzugreifen. Interbase und Firebird sind jedoch nicht dasselbe und haben sich bereits vor längerer Zeit auseinanderentwickelt.
Aus den beiden Kommentaren schließe ich mal, dass Firebird Library mit InterBase_DB Datei nicht kompatibel sind! Es ist nämlich schwer das definitiv herauszufinden, da viele Beiträge im Internet Verbindung mit InterBase beschreiben und damit aber Firebird meinen (war ja mal eins)

Kann mir jemand bestätigen, dass das nicht geht? Dann kann ich nämich aufhören zu versuchen

zur 2. Idee den ODBC Trieber zu benutzen. Hat da jemand eine Idee warum das nicht geht. Passt der DNS connecting String nicht?

LG und Danke

Stefan
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
695 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Interbase X3 server via PHP

  Alt 11. Mai 2015, 20:56
du kommst auch mit einem aktuellen Firebird Client auf nahezu alle Interbase Versionen, sofern du bei Blob und Interbase speziellen Datentypen vorsichtig bist. Wir nutzen das regelmäßig, um die letzten Interbase Kunden so nach und nach auf Firebird umzustellen (Wir gehen dabei direkt aus der Firebird Datenbank via execute statement on external auf Interbase, ist aber für dich hier erst mal nicht wichtig, wenn du bei Interbase bleiben willst oder musst).

Wichtig ist dabei aber, das du einen connectionstring am besten mit port nutzt, um dich mit dem interbase server zu verbinden (z.B. 1.2.3.4/3050:C:\pfad\db.gdb oder ähnlich. Der Instanzname von Interbase, sofern benutzt, statt /3050 hilft dir nicht weiter. Nimm den tcp/ip port
(standard 3050).

Wenn du auf der selben Kiste Interbase und Firebird parallel installiert hast, könnte es sein, das die sich auf 3050 in die quere kommen. stelle dann ggf den firebird port in der firebird.conf unter remoteserviceport auf einen anderen port und starte die kiste neu.

du kommst auch mit pdo und dem firebird client dann auf interbase, wenn der connection string passt

hier ein Beispiel Quellcode einer minimal php Anwendung aus unseren Powerworkshops
Code:
<?php

    try
     {
       $dbh = new PDO("firebird:dbname=localhost/3050:c:\db\barcode.fdb", "SYSDBA", "masterke");


       $dbh->beginTransaction();
       
       $sql = "SELECT txt FROM IBEWEB('";
       $sql .= $_POST["CMD"];
       $sql .= "','";
       $sql .= implode("#",$_POST);
       $sql .= "#";
       $sql .= implode("#",$_GET);
       $sql .= "','";
       $sql .= $_SERVER["REMOTE_ADDR"];
       $sql .= "')";
       foreach ($dbh->query($sql) as $row)
        {
          print $row['TXT'] . '';
        }

       $dbh->commit();
     }   
    catch (PDOException $e)
     {
       echo $e->getMessage();
     }
    $dbh=null;
?>
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
Firebird 5 Update und Know-how Workshop – 28.8.-29.08.2025 64546 Mörfelden - Walldorf
  Mit Zitat antworten Zitat
stefanhtt

Registriert seit: 11. Mai 2015
7 Beiträge
 
#6

AW: Interbase X3 server via PHP

  Alt 11. Mai 2015, 21:12
Danke für den Hinweis, habs auch gleich probiert, habe aber schon folgende bekannte Fehlermeldung bekommen

SQLSTATE[HY000] [335544379] unsupported on-disk structure for file D:\xxx\xxx.IB; found 11.2, support 11.2

Wenn ich mit interbase XE3 eine neue Datenbak erstelle, bekomme ich beim Versuch mich zu verbinden den fehler:

SQLSTATE[HY000] [335544379] unsupported on-disk structure for file D:\xxx\xxx.IB; found 15.0, support 11.2

LG

Stefan
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz