Wie Daten vom Modul auf eine externe Datenbank leiten?

Begonnen von reddragon, 29 August 2011, 21:54:33

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

reddragon

HI,

ich habe ein kleines Problem:

Ich möchte Werte aus einem Modul unter bestimmten Bedingungen in eine externe Datenbank kopieren.
Leider bekomme ich es nur hin, dass die Daten in eine Tabelle aus der offizielle DB eingetragen werden:

if ($Bedingung ==! 0) {
sql_query("insert into " . $prefix . "_TabellenName values ('Wert2', 'Wert2', '.........


Ich habe hier irgendwie versucht, die neuen Datenbank-Kontaktdaten einzubauen, aber leider springt er in dieser Anweisung nicht um. Weiß jemand, woran es liegt?
if ($Bedingung ==! 0) {
$link = mysql_connect('der-host.de', 'Datenbanknutzer', 'Passwort');
if (!$link) {
    die('keine Verbindung möglich: ' . mysql_error());
}
$db_selected = mysql_select_db('Datenbank-name', $link);
if (!$db_selected) {
    die ('Datenbank-name' . mysql_error());
}

sql_query("insert into Tabellenname values ('Wert2', 'Wert2', '.........




Als Fehlermeldung erhalte ich das hier:


Zitat

Error sql_query():
qry: insert into Tabellenname values ('Wert1', '')
descr: ( mysql 0 )

details:

cmd: sql_query(insert into Tabellenname values ('Wert1', '...),
cmd: SubmitPost(insert into Tabellenname values ('Wert1', '...),
cmd: include_once(insert into Tabellenname values ('Wert1', '...),

anmShinichi

Was mir nur auffällt...

der connect findet mit mysql_connect und mysql_selectdb statt, sprich die original PHP-mysql-Funktionen. Die eigentliche Funktion für das insert findet aber per sql_query statt, sprich die pmx_funktion.

Ich würde es mit mysql_query versuchen, vielleicht hilft das ja.

Generell hebelt es aber die Schutzfunktionen von PMX aus, die angeboten werden. Mysql bietet doch mittlerweile Schattenkopien auf externe Mysql-Datenbanken an. Aber nur nebenbei :)

Viele Grüße
Ronny

anm
MonsterWorks - www.monsterworks.de

lausbub

danke hab es hinbekommen.

Also mein System hat eine onlinedatenbank mit Userverwaltung und zusätzlich eine Datenbank auf meinen _HomeServer für die besonderen Daten.

Perfekt.

PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12

reddragon

Hallo zusammen,

ich habe es nun auch hin bekommen :)

besten Dank  :thumbup:


Aber inwiefern hebelt es welche Schutzfunktionen aus?
Solange die Bedingung nicht erfüllt ist, dürfte sich nichts vom Code-Ablauf ändern.
Sollte diese Bedingung erfüllt werden, dann denke ich, ist nur die externe DB in Gefahr, oder?


Anbei meine Lösung  :BD:


if ($Bedingung ==! 0) {



    $externconnect = mysql_connect('Host', 'Datenbank-nuter', 'Passwort');
    if (!$externconnect) {
        die('keine Verbindung möglich: ' . mysql_error());
    }
    if ($externconnect) {
        echo 'Datenbank erreicht <br>';
    }
    $db_selected = mysql_select_db('Datenbank-name', $externconnect);
    if (!$db_selected) {
        die ('Datenbank-name' . mysql_error());
    }
    if ($db_selected) {
        echo 'Tabelle Gefunden <br>';
    }

    $sql="INSERT INTO Tabellenname (Wert1, Wert2, ....)
    VALUES
    ('Wert1','Wert2','','....')";

    if (!mysql_query($sql,$externconnect)){
        die('Error: ' . mysql_error());
    }

    echo "Datensatz ausgelagert";

    mysql_close($externconnect);


}




lausbub

die locale db sehe ich nicht in gefahr, da die einträge mit allen sicherheitsfuntionen und mit orginal mx functionen eingetragen werden.
lediglich werden die daten von einem bei mir local instalierten pragma abgeholt und per post dann entsprechend den pragma sicherheitsfunctionen wieder weiterverarbeitet und neu gespeichert
PHP Version: 5.2.11
MySql Version: 5.0.51a
Server-Version: Apache/2.2.8 (Linux/SUSE)
Pragma 1.12

reddragon

Wie hast du die Sicherheitsfunktionen in das Script eingebaut?