Hallo
Ausgangssitution:
man soll über I-net(URL) PHP-Scipte ausführen die auf eine local vorliegende Datenbank zugreifen.
Die PhP-Scripte liegen auf einem Ubuntu-Hetzner-Server. Dieser von mir und einem Kollegen vor kurzem auf den aktuellesten Stand gebracht. Die Scipte versuchen über pdo_firebird auf die Datenbank zu zugreifen.
Die Datenbank liegt momentan noch lokal auf meinem Laptop und soll später wenn alles zuverlässigläuft auf unseren lokalen Server umziehen.
Wenn ich die Datenbank auf dem Hetzner lagere und von dort aus die angepassten scripte ausführe funktioniert alles. Die Ausgabe erfolgt wie gewünscht.
Wenn ich die Datenbank von meinem Laptop aus ausführe oder mit IBExpert öffne gibt es auch keine Probleme(ersteres nehme ich an da ich sie hier geschrieben habe, vor knapp einem viertel Jahr).
Das Problem liegt aber bei der eigentlichen Idee:
Steuer ich von hier aus über den Mozilla die URL mit den parametern an und gebe als verbindung meine Lokale Datenbank in den scripten(Scripte liegen aufm dem Hetzner) an so scheitert das ganze und schmeist mir folgende Fehlermeldung raus:
Ich hab nun schon versucht den Pfad oder die verbindung zu ändern was man an dem Script durch die Kommentare sieht, aber das führt nur zur gescheiterten Verbindungsherstellung.
Mein Script:
Laut Recherche und ratschlägen von kollegen soll es an einem Versionsunterschied zwischen Datenbank und Client liegen. Dabei frag ich mich aber warum ich sie dann in den einzelnen Systemen starten kann.
Auf dem Hetzner läuft aktuell pdo_firebird in der version 2.5. auf meinem Laptop läuft Firebird 2.5. Die datenbank hab ich bis jetzt immer mit Firebird 2.0 in der Datenbank registriert.
Wichtig wäre vllt auch noch das ich einen OPENVpn Tunnel zwischen dem Server und dem Lokalen Laptop laufen lasse.
Die funktioniert eigentlich reibungslos.
Ich wäre sehr dankbar für denkanstöße oder sogar lösungen.
Beste Grüße
Ausgangssitution:
man soll über I-net(URL) PHP-Scipte ausführen die auf eine local vorliegende Datenbank zugreifen.
Die PhP-Scripte liegen auf einem Ubuntu-Hetzner-Server. Dieser von mir und einem Kollegen vor kurzem auf den aktuellesten Stand gebracht. Die Scipte versuchen über pdo_firebird auf die Datenbank zu zugreifen.
Die Datenbank liegt momentan noch lokal auf meinem Laptop und soll später wenn alles zuverlässigläuft auf unseren lokalen Server umziehen.
Wenn ich die Datenbank auf dem Hetzner lagere und von dort aus die angepassten scripte ausführe funktioniert alles. Die Ausgabe erfolgt wie gewünscht.
Wenn ich die Datenbank von meinem Laptop aus ausführe oder mit IBExpert öffne gibt es auch keine Probleme(ersteres nehme ich an da ich sie hier geschrieben habe, vor knapp einem viertel Jahr).
Das Problem liegt aber bei der eigentlichen Idee:
Steuer ich von hier aus über den Mozilla die URL mit den parametern an und gebe als verbindung meine Lokale Datenbank in den scripten(Scripte liegen aufm dem Hetzner) an so scheitert das ganze und schmeist mir folgende Fehlermeldung raus:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [335544379] unsupported on-disk structure for file C:\FIRMAPLAY_funktioniert.GDB; found 32779.10, support <Missing arg #4 - possibly status vector overflow>.<Missing arg #5 - possibly status vector overflow>' in /var/www/test/getcoworkerlist.php:30 Stack trace: #0 /var/www/test/getcoworkerlist.php(30): PDO->__construct('firebird:dbname...', 'SYSDBA', 'masterkey') #1 {main} thrown in /var/www/test/getcoworkerlist.php on line 30
Mein Script:
PHP-Code:
<html>
<head>
<title>
getcoworkerlist
</title>
</head>
<body>
<?php
//mittels url wird die variable �bergeben
/* type kann folgende Inhalte haben:
offline(Wert 0)
free(Wert 1)
busy(Wert 2)
*/
$aid=$_GET["aid"];
//$ausnahme_datum= "1900-01-01 00:00:00";
require_once("befehle.php");
//require_once("connection.php");
//define("DB_HOST", "10.8.0.6");
//define("DB_USER", "SYSDBA");
//define("DB_PASSWORD", "masterkey");
//define("DB_NAME","C:\\Apache2.2\\htdocs\\FIRMAPLAY_funktioniert.GDB");
//$database = new PDO("firebird:dbname=" . DB_NAME . ":" . DB_HOST . "","" . DB_USER . "", "" . DB_PASSWORD . "");
//$database = new PDO ($str_conn, "SYSDBA", "masterkey");
//$str_conn = "firebird:dbname=10.8.0.6:C:\\FIRMAPLAY_funktioniert.gdb;";
$database = new PDO("firebird:dbname=10.8.0.6:C:\\FIRMAPLAY_funktioniert.GDB","SYSDBA","masterkey");
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
db_abfrage($database);
switch($_GET["servicestatus"]){
case "offline":
$sql="SELECT * FROM VW_SERVICE WHERE (\"SERVICEAID\"=$aid) AND (\"SERVICESTATUS\"=0)";
break;
case "free":
$sql="SELECT * FROM VW_SERVICE WHERE (\"SERVICEAID\"=$aid) AND (\"SERVICESTATUS\"=1)";
break;
case "busy":
$sql="SELECT * FROM VW_SERVICE WHERE (\"SERVICEAID\"=$aid) AND (\"SERVICESTATUS\"=2)";
case "freeandbusy":
$sql="SELECT * FROM VW_SERVICE WHERE (\"SERVICEAID\"=$aid) AND ((\"SERVICESTATUS\"=1) OR (\"SERVICESTATUS\"=2))";
break;
case "all":
$sql="SELECT * FROM VW_SERVICE WHERE (\"SERVICEAID\"=$aid) AND (\"SERVICESTATUS\">=0)";
break;
}
echo '</br></br>';
foreach($database->query($sql) as $key => $entry)
{
echo ('"' . $entry['ID'] . '", "' . $entry['MITARBEITERNAME'] .'", "' . $entry['SERVICEIP'] .'"; ');
};
?>
</body>
</html>
Auf dem Hetzner läuft aktuell pdo_firebird in der version 2.5. auf meinem Laptop läuft Firebird 2.5. Die datenbank hab ich bis jetzt immer mit Firebird 2.0 in der Datenbank registriert.
Wichtig wäre vllt auch noch das ich einen OPENVpn Tunnel zwischen dem Server und dem Lokalen Laptop laufen lasse.
Die funktioniert eigentlich reibungslos.
Ich wäre sehr dankbar für denkanstöße oder sogar lösungen.
Beste Grüße
Kommentar