• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

php Befehl zur odbc Verbindung

engel

New member
Hallo,Ich habe auf Windows Xp OS das xampp installiert.(Host:localhost)und möchte per PHP-Script eine odbc_Verbindung zum ms access schaffen.Ich bekomme schon bei dem "odbc_connect" Befehl die Fehlermeldung:Function undifened.Wo sollte ich etwas einstellen?Für Eure Vorschläge möchte ich mich im voraus bedanken.​
 
Hallo,Ich habe auf Windows Xp OS das xampp installiert.(Host:localhost)und möchte per PHP-Script eine odbc_Verbindung zum ms access schaffen.Ich bekomme schon bei dem "odbc_connect" Befehl die Fehlermeldung:Function undifened.Wo sollte ich etwas einstellen?Für Eure Vorschläge möchte ich mich im voraus bedanken.​
Hier ist weder Twitter noch SMS. Du musst nicht alles in eine Zeile quetschen und mit Leerzeichen knausern.

zum Thema: ODBC ist standardmäßig inaktiv, Du musst in der PHP Konfiguration das entsprechende Modul erst aktivieren. Ob das Modul überhaupt mitgeliefert wurde, oder Du es Dir woanders besorgen musst, weiß ich ned.
 
Hallo,Eurer Vorschlag:
- Zur MySQL-Datenbank beim Provider connecten
- Direkt danach zur lokalen mdb connecten
- Daten aus MySQL holen und in mdb schreiben (am einfachsten Zeile für Zeile holen und dann rüberschreiben)
Ich bin Eurem Vorschlag nachgegangen:
1)ich hole die Daten vom Provider herunter.(ich befinde mich auf dem Web)
2)ich kann jetzt ,im gleichen Script,Daten nicht in localhost einlesen,dazu musste ich auf localhost gehen.
Hier liegt für mich die entscheidende Schwierigkeit.
3) Wenn ich den Punkt abklären könnte,wäre die ganze Angelegenheit für mich erledigt,weil
Ich ms access datenbank schon über odbc mit dem lokalen db verknüpft habe.
Ich bedanke mich für die möglichen Vorschläge.
 
Eurer Vorschlag:
- Zur MySQL-Datenbank beim Provider connecten
- Direkt danach zur lokalen mdb connecten
- Daten aus MySQL holen und in mdb schreiben (am einfachsten Zeile für Zeile holen und dann rüberschreiben)
Ich bin Eurem Vorschlag nachgegangen:
1)ich hole die Daten vom Provider herunter.(ich befinde mich auf dem Web)
2)ich kann jetzt ,im gleichen Script,Daten nicht in localhost einlesen,dazu musste ich auf localhost gehen.
Hier liegt für mich die entscheidende Schwierigkeit.
Die nicht da wäre, wenn Du die geposteten Beiträge aus dem entsprechenden Thread verstanden hättest.
 
AW: dba_insert ?

PHP:
<!DOCTYPE html PUBLIC 
    "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html>
<head>
<title>Auswahl der Daten</title>
</head>
<body>
<?php
$user = "UXXX";
$pass = "Passwort";
$db = "DBXXXX";
$link =  mysql_connect( "aaa.xxx.de", $user, $pass  );
if ( ! $link ) {
    die( "Konnte Verbindung zur MySQL-Datenbank nicht aufbauen: ".mysql_error()  );
}

mysql_select_db( $db, $link ) 
    or die ( "Konnte $db nicht öffnen: ".mysql_error() );

$result = mysql_query( "SELECT * FROM __produkt__" );
$num_rows = mysql_num_rows( $result );
print "<table border=\"1\">\n";
while ( $a_row = mysql_fetch_row( $result ) ) {
    print "<tr>\n";
    foreach ( $a_row as $field ) {
        print "\t<td>".stripslashes($field)."</td>\n";
    }
    print "</tr>\n";   
}
//mysql_close( $link );
?>
<table border="1" cellpadding ="5">
<tr>
<td align="center"> <b>Produkt</b>  </td>
<td align="center"> <b>Farbe</b>    </td>
<td align="center"> <b>Versandkosten</b> </td>
<td align="center"> <b>Preis</b>    </td>
</tr>
</table>
<?php
$dbh = dba_open( "C:\\xampp\mysql\data\produkt", "c", "ndbm" ) 
			or die( "Konnte Datenbank nicht ?ffnen." );

$key = dba_firstkey( $dbh );
while ( $key != false ) {
    $prodarray = unserialize( dba_fetch( $key, $dbh) );
?>
    <tr><td align="left">
        <?=$key?>
    </td><td align="left">
        <?=$prodarray['color']?>
    </td><td align="right">
        $<?=sprintf( "%01.2f", $prodarray['shipping'] )?>
    </td><td align="right">
        $<?=sprintf( "%01.2f", $prodarray['price'] )?>
    </td></tr>
<?php
	[SIZE="3"]dba_insert($key, $prodarray, $dbh);[/SIZE]
    $key = dba_nextkey( $dbh );
}
dba_close( $dbh );
mysql_close( $link );
?>
</body>
</html>
Hallo,der macht den ersten Teil richtig.Bringt also von web der inhalt von produkt (Provider Datenbank).
Im zweiten Teil bringt auch keine Fehlermeldung aber der Inhalt ist von wo anders und nicht sinnvoll.
Ich glaube irgendwas mit dba_insert nicht richtig läuft.
Für Hinweise bedanke ich mich im voraus.​
 
Zuletzt bearbeitet von einem Moderator:
AW: dba_insert ?

Hallo,der macht den ersten Teil richtig.Bringt also von web der inhalt von produkt (Provider Datenbank).
Im zweiten Teil bringt auch keine Fehlermeldung aber der Inhalt ist von wo anders und nicht sinnvoll.
Ich glaube irgendwas mit dba_insert nicht richtig läuft.
Für Hinweise bedanke ich mich im voraus.​
1. CodeTags, den Knopf für Linksbündig hast Du ja auch gefunden.
2. Die korrekte Anzahl an Skripten zur Lösung Deines Problems ist größer gleich zwei. Dies geht auch aus dem bereits erwähnten Thread hervor.
Hier ist er nochmal: http://forum.jswelt.de/serverseitige-programmierung/46003-keine-server-verbindung.html
 
AW: dba_insert ?

2. Die korrekte Anzahl an Skripten zur Lösung Deines Problems ist größer gleich zwei. Dies geht auch aus dem bereits erwähnten Thread hervor.
Hier ist er nochmal: http://forum.jswelt.de/serverseitige-programmierung/46003-keine-server-verbindung.html

seh ich nicht so, der ansatz im post ist schon richtig, nur statt die daten der mysql query auszugeben sollte man sie in die andere datebank reinschreiben - nicht erst alle daten holen und im browser ausgeben und anschließend komische sachen mit der anderen db machen.
 
AW: dba_insert ?

seh ich nicht so, der ansatz im post ist schon richtig, nur statt die daten der mysql query auszugeben sollte man sie in die andere datebank reinschreiben - nicht erst alle daten holen und im browser ausgeben und anschließend komische sachen mit der anderen db machen.
Wie kommt man an die Daten in der entfernten Datenbank ran, wenn diese hinter einer Firewall ist?
Wie kann man Daten in ein lokale Datenbank übertragen, wenn das Skript auf dem Server läuft?
Mit einem einzigen Skript ist das nicht zu machen. Es hätte nur jeweils Zugriff zu einer der beiden Datenbanken.
 
in dem script siehts so aus als würde es lokal (auf dem windozw xampp) laufen und auf die entfernte mysql-db connecten - der teil funktioniert (laut neuesten angaben) auch. D.h. die entfernten daten sind auf die lokale maschine geholt, jetzt gehts nur noch drum diese daten in die lokale dba zu packen
 
in dem script siehts so aus als würde es lokal (auf dem windozw xampp) laufen und auf die entfernte mysql-db connecten - der teil funktioniert (laut neuesten angaben) auch.
Ich denke nicht:
1)ich hole die Daten vom Provider herunter.(ich befinde mich auf dem Web)
2)ich kann jetzt ,im gleichen Script,Daten nicht in localhost einlesen,dazu musste ich auf localhost gehen.
Hier liegt für mich die entscheidende Schwierigkeit.

Aber letztendlich wurde das alles schon mal angerissen. Lediglich merkliche Fortschritt bleiben aus.
 
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Listing 13.5 Auswahl der Daten</title>
</head>
<body>
<?php
$user = "UXXXX";
$pass = "YYYYY";
$db = "DBXXXXX";
$link = mysql_connect( "aaaa.bbbbb.de", $user, $pass );
if ( ! $link ) {
die( "Konnte Verbindung zur MySQL-Datenbank nicht aufbauen: ".mysql_error() );
}
$fp = fopen( "C:\Programme\produkt.txt", "w" )
or die( "Konnte file nicht ?ffnen." );

mysql_select_db( $db, $link )
or die ( "Konnte $db nicht öffnen: ".mysql_error() );

$result = mysql_query( "SELECT * FROM __produkt__" );
$num_rows = mysql_num_rows( $result );
while ( $a_row = mysql_fetch_row( $result ) ) {
foreach ( $a_row as $field ) {
print($field);
fwrite($fp, $field);
}
}
fclose($fp);
mysql_close( $link );
?>
</body>
</html>
Hallo,der liest die Daten richtig herunter,
der Kontrolausdruck gibt die richtigen Daten,er schreibt
aber nicht in produkt.txt.Danke für die Hinweise.​
 
Hallo,ich bin entweder auf dem Provider-Server oder localhost.Wie kann man (Zitat:lokal per sql auf die db beim provider gehen).das schaffen?​
 
AW: dba_insert ?

PHP:
<?php
$user = "UXXX";
$pass = "Passwort";
$db = "DBXXXX";
$link =  mysql_connect( "aaa.xxx.de", $user, $pass  );
if ( ! $link ) {
    die( "Konnte Verbindung zur MySQL-Datenbank nicht aufbauen: ".mysql_error()  );
}

mysql_select_db( $db, $link ) 
    or die ( "Konnte $db nicht öffnen: ".mysql_error() );
so
 
Aber nur, wenn die DB auch offen ist für Zugriffe von außen, was meistens nicht der Fall ist.
Ich würde ja vorschlagen, dass Ganze in zwei Scripten zu machen:
das Erste auf dem Server, das die Daten ausliest und diese wohlgeformt (z.B. kommasepariert) ausgibt.
das Zweite auf dem localhost, das sich die Daten vom Ersten übers Netz holt und diese dann in die lokale DB schreibt.
 
AW: schreiben vom provider in die Datei

Code:
<!DOCTYPE html PUBLIC 
    "-//W3C//DTD XHTML 1.0 Strict//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html>
<head>
<title>Listing Daten schreiben</title>
</head>
<body>
<?php
$user = "UXXXX";
$pass = "passwort";
$db = "DBXXXX";
$link =  mysql_connect( "www.test.de", $user, $pass  );
if ( ! $link ) {
    die( "Konnte Verbindung zur MySQL-Datenbank nicht aufbauen: ".mysql_error()  );
}
$fp = fopen( "produkt.txt", "w" ) 
			or die( "Konnte file nicht ?ffnen." );

mysql_select_db( $db, $link ) 
    or die ( "Konnte $db nicht öffnen: ".mysql_error() );

$result = mysql_query( "SELECT * FROM __produkt__" );
$num_rows = mysql_num_rows( $result );
while ( $a_row = mysql_fetch_row( $result ) ) {
    foreach ( $a_row as $field ) {
    print($field);
        fwrite($fp, $field);fwrite($fp, ",");
    }    
}
fclose($fp);
mysql_close( $link );
?>
</body>
</html>
Das erste Script liest die Daten von Provider-Datenbank.Das ist in Ordnung.Jetzt im zweiten Script muß ich diese Daten "produkt.txt" in localhost einlesen aber wie könnte ich darauf zugreifen weil die auf dem Provider-Server sind?Danke für die Aufmerksamkeit.​
 
Hallo,wie Du auch oben in der Listing sehen kannst,in dieser Art bleiben die Daten auf dem Server.Auf die kann ich in diesem Fall nur zugreifen,wenn ich auf dem Web bleibe,andererseits kann ich die in localhost nicht in die Bank nehmen.Also wie soll ich "produkt.txt" plazieren?Beziehungsweise wo soll ich die speichern?Für die Mühe bedanke ich mich.​
 
Wenn man auf dem Server eine Datei erzeugt, z.B. im Homageroot mit Namen test.txt kannst du die mit "http://example.org/test.txt" auch abrufen.
Und schon hast du die Datei in deinem lokalen Script.
 
Zurück
Oben