DB auf mehreren Servern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
befehl
beispiel
benutzer
bild
code
datenbank
hintergrund
host
http
info
internet
knopf
port
server
stehen
url
verbindung
vorschlag
windows
wissen
-
guten tag
ist es mit php möglich eine datenbank mittels odbs von einem server a auf dem server b anzusprechen?
so spreche ich meine DB's im php zurzeit an.
$_DSN = "dbname odbs";
$_User = "odbs username";
$_PW = " odbs passwort";
$conn = odbc_connect($_DSN, $_User, $_PW) or die("Verbindung fehlgeschlagen");
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich persönlich habe zwar noch nicht damit gearbeitet, aber laut der Manual-Seite soltle es so gehen:
$conn = odbc_connect("DRIVER={MySQL ODBC 3.51 Driver};Server=localhost;Database=mysql", "shyam", "mypass");
Das ganze steht unten in den Kommentaren, die kannst du dir ja mal Ansehen. Das Beispiel ist für eine MySQL-Datenbank, du hast ja leider nihct erwähnt, um was für einen Datenbank-Server es sich handelt … -
richtig... du brauchst nur den Server und den offenen Port... was allerdings sehr selten ist... ein offener SQL Port ins Internet... weils eben ein sicherheitsrisiko ohnesgleichen ist...normalerweise ist der port nur auf Localhost oder ins intranet offen, nie aber ins internet... weil man sowas idR über VPN realisiert...
-
wie sehe ich, ob der odbc port offen ist oder nicht?
den mein ziel ist es zb.
die gallery auf einem server zu platzieren, wo eine gute gallerysoftware hat, der rest der homepage zb. hier oder auf einem anderen server.
ich habe für meine gallery eine funktion entwickelt, wo user auf das bild klicken können und dann in einer db gespeichert wird, und in seinem profile angezeigt wird (favorittenbilder).
aber dies geht nur, wenn eben ich die db vom server a auf dem server b ansprechen kann. -
Du kannst es einfach versuchen, indem du versuchst eine Verbindung zur Datenbank herzustellen, klappt das nicht ist der Server vermutlich nur Lokal zu erreichen.
EIne andere Möglichkeit wäre nmap, da weiß ich aber nicht, ob du die Software kennst. Wenn du sie Nicht kennst einfach mit der anderen möglichkeit probieren ;) -
und wie müsste es aussehen der befehl
so zb.?
$_server = "166.66.66.66";
$_DSN = "dbname odbs";
$_User = "odbs username";
$_PW = " odbs passwort";
$conn = odbc_connect($_server,$_DSN, $_User, $_PW) or die("Verbindung fehlgeschlagen");
-
internetplattform schrieb:
für jeden erreichbaren server sieht der befehl so aus:
und wie müsste es aussehen der befehl
so zb.?
$_server = "166.66.66.66";
$_DSN = "dbname odbs";
$_User = "odbs username";
$_PW = " odbs passwort";
$conn = odbc_connect($_server,$_DSN, $_User, $_PW) or die("Verbindung fehlgeschlagen");
also nicht besonders aufregend oder unterschiedlich. hier ein beispiel, von einem kundenserver kannst auf lima zugreifen, oder wegen fehler eben nicht; aber nicht auf meinem privaten mysql server. (erlaubte werte für host sind "1", "2" oder "3". mehr ist nicht drin! die query heißr 'select variables()'.)if ( !$c = @mysql_connect ("hostname", "username","password") ) {exit ("error: ".mysql_error ());} oder if ( !$c = @odbc_connect ("hostname", "username","password") ) {exit ("error: ".mysql_error ());}
warum bist du eigentlich so auf odbc angewiesen?
Beitrag zuletzt geändert: 17.4.2010 19:00:13 von czibere -
in deinem beispiel beispiel schreibst du nur hostname,username,password. aber wie weiss er auf welchen server er gehen muss und dort welche db öffnen soll?
meine vorschlag:
$_server = "166.66.66.66";
$_DSN = "dbname odbs";
$_User = "odbs username";
$_PW = " odbs passwort";
$conn = odbc_connect($_server,$_DSN, $_User, $_PW) or die("Verbindung fehlgeschlagen");
euer vorschlag:
if ( !$c = @mysql_connect ("hostname", "username","password") ) {exit ("error: ".mysql_error ());}
ihr schreib mysql_connect, aber ich odbc_connect.
den es ist ein windows-db im hintergrund und keine mysql-db
-
internetplattform schrieb: in deinem beispiel beispiel schreibst du nur hostname,username,password. aber wie weiss er auf welchen server er gehen muss und dort welche db öffnen soll?
ok also ganz langsam:
...
euer vorschlag:
if ( !$c = @mysql_connect ("hostname", "username","password") ) {exit ("error: ".mysql_error ());}
ihr schreib mysql_connect, aber ich odbc_connect.
den es ist ein windows-db im hintergrund und keine mysql-db
in dem fall (wie ich es auch vorhin geschrieben habe) kannst das nehmen:
da stehen natürlich die ausdrücke "hostname", "username","password", weil ich ja nicht wissen kann wie die echt lauten. wenn das dein server ist, musst du ja es wissen!?if ( !$c = odbc_connect ("hostname", "username","password") ) {exit ("error: ".odbc_errormsg ());}
ein beispiel: du hast zu hausee bei dir einen server stehen und da drauf rennt ein sql-server. dann würden die drei ausdrücke in etwa so lauten: hostname = "localhost", username = "Administrator"(für windows)/"root"(für UNIX/Linux) und das password = "..." ja das kann ich dir wirklich nicht sagen ;o)
wo hast du denn den server überhaupt?
==== edit: oh ja! welche datenbank
odbc_do ($c, string "use database");
Beitrag zuletzt geändert: 17.4.2010 19:01:44 von czibere -
jetzt habe ichs gesehen, aber
hostname: servername
usernaame: benutzer
password: passwort
aber wo steht, welche DB geöffnet werden muss?
-
internetplattform schrieb:
du warst vor meier editierung dran. entschuldige ich habe darauf vergessen. jetzt steht in der vorigen posting. allerdings gibt es auch andere möglichkeiten, in dem du keine datenbank auswählen musst. der name muss dan immer in der query stehen z.b.:
jetzt habe ichs gesehen, aber
hostname: servername
usernaame: benutzer
password: passwort
aber wo steht, welche DB geöffnet werden muss?
achte auf den punkt!"select * from <db-name>.<table-name> ..."
Beitrag zuletzt geändert: 17.4.2010 17:55:17 von czibere -
schreibe ich dies so in meiner php
$_DSN = "url-server";
$_User = "dbuser";
$_PW = "dbpass";
$conn = odbc_connect($_DSN, $_User, $_PW) or die("Verbindung fehlgeschlagen");
$SQL0 = "SELECT * FROM dbname.tabelle";
$SQL0R = odbc_exec($conn, $SQL0);
bekomme ich beim aufrufen der seite diese meldung: Fatal error: Call to undefined function odbc_connect()
-
... Fatal error: Call to undefined function odbc_connect() ...
sehr einfach, dort wo dein script rennt, wird kein odbc unterstützt. sag mal. versuchst den script etva bei lima zum rennen zu bringen? wenn das so ist, probier's doch lieber mit
es wird wunder bewirken ;o)if ( !$c = @mysql_connect ("hostname", "username","password") ) {exit ("error: ".mysql_error ());}
und wenn der wo anders rennt ist sowieso schwer von hier aus hilfe zu leisten. -
aber mit mysql_connect kann man doch keine odbc ansprechen?
also kann ich hier nicht die php seiten haben und meine odbc datenbank wo anders -
... also kann ich hier nicht die php seiten haben und meine odbc datenbank wo anders
doch. nur, wie ich vorhin schon gesagt habe, es schafft kaum jemand, ohne irgendetwas von der umgebung von 'wo anders' zu wissen. um hilfe leisten zu können sollte möglichst viel (eigentlich ohnehin alles) von deinem anderen server bekannt sein - sonst geht es nicht. wir sind alle keine 'programmatische' hellseher. man sollte eigentlich den server inspizieren können, bevor man irgend etwas sagt. das machen wir ja mit zahlenden kunden auch nicht anders ;o)
Beitrag zuletzt geändert: 18.4.2010 8:40:45 von czibere -
also ein paar infos über den server, wo ich meine db's habe
meine gallery würde ich zb. hier haben, die braucht keine db für sich selbst.
aber ich habe sie weite(gallery)weiter entwickelt, damit neben dem bild auf den knopf gedrückt werden kann "favoritenbild" dieser knopf soll eben in die db schreiben, welche auf einem anderen server ist den die db ist eim ms-access db, somit odbc ansprechbar.
oder gibt es eine andere möglichkeit die ms-access anzusprechen ohne odbc, wenn ja, würde ich auch dies machen und die db dann auf dem gleichen server haben?
server info "db":
system: win srv 2003
php 5.0
odbc ms-access treiber 4.0 -
Lima bietet weder odbc_ noch den PDO_ODBC Driver an.
Allgemein, ein gut gemeinter Rat: Wenn du im Internet eine Datenbank nutzt, solltest du auf MySQL setzen, da das sie einzig wirklich breit unterstützte Datenbank ist. Einige Hoster unterstützen auch noch PgSQL, Lima jedoch nicht (konfiguriert mit --without-pgsql).
Mit MS-Access kommst du nicht weit. -
internetplattform schrieb:
dann ist es so, du hast deine gallery da, aber du solltest den script, der in die db schreibt auf dem server haben wo mssql drauf ist. aber die worte von nikic solltest dir ernsthaft überlegen. guter rat. überschreibe deine bisherigen scripte. da werden dir die leute dabei sicher helfen. solltest aber doch bei M$ bleiben wollen, kann ich dir ein bisschen dabei helfen (also nicht alles für dich proggen ;o).
also ein paar infos über den server, wo ich meine db's habe
meine gallery würde ich zb. hier haben, die braucht keine db für sich selbst.
aber ich habe sie weite(gallery)weiter entwickelt, damit neben dem bild auf den knopf gedrückt werden kann "favoritenbild" dieser knopf soll eben in die db schreiben, welche auf einem anderen server ist den die db ist eim ms-access db, somit odbc ansprechbar.
oder gibt es eine andere möglichkeit die ms-access anzusprechen ohne odbc, wenn ja, würde ich auch dies machen und die db dann auf dem gleichen server haben?
server info "db":
system: win srv 2003
php 5.0
odbc ms-access treiber 4.0
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage