- MySQL Daten in eine MySQL Datenbank schreiben

  • PHP

Es gibt 33 Antworten in diesem Thema. Der letzte Beitrag () ist von Link275.

    - MySQL Daten in eine MySQL Datenbank schreiben

    Hallo!

    Ich kenne mich nicht wirklich mit mysql aus.
    Habe da einen Code aus dem Internet, mit welchem ich Daten in eine Datenbank hineinschreibe!

    SQL-Abfrage

    1. mysql()
    2. INSERT INTO dvds(Name, Altersbeschränkung, Dauer, Infos);
    3. VALUES($name,
    4. $altersfrg,
    5. $dauer,
    6. $more);


    Mir wird in Zeile 2 ein Fehler angezeigt (Syntax Error). Wie behebe ich das Problem?

    Und wie verbinde ich mich mit einer Datenbank, welche auf einer anderen Domain liegt?

    Vielen Dank im Voraus!
    Du tust die Abfrage garnicht erst ausfüren.

    Richtig were:

    PHP-Quellcode

    1. mysql_query("INSERT INTO dvds(Name, Altersbeschränkung, Dauer, Infos) VALUES($name, $altersfrg,$dauer, $more));


    *EDIT*
    mySQL ist veraltet nutze PDO da ist die mySQL Injection direkt beoben soviel ich weiss

    Hi,

    auf Datenbanken auf externen Servern kannst du über IP oder Hostname zugreifen. Der Ziel-Server muss das allerdings auch unterstützen.

    Zu deinem Fehler: sieht nicht so aus als würde da überhaupt was ausgeführt werden.

    PHP-Quellcode

    1. mysql_error("INSERT INTO `test` (`id`, `name`) VALUES ('" . $id . "', '" . $name . "')";


    Link :thumbup:
    Hello World
    Hi,

    na da wo jetzt beim Datenbank-Verbindungsaufbau noch "localhost" steht, muss die öffentliche IP des Ziel-Datenbankservers rein, oder der Hostname.

    Beispiel:

    PHP-Quellcode

    1. //Der wichtige Teil hier. Da wo jetzt die IP steht, steht bei dir momentan vermutlich noch "localhost"
    2. @mysql_connect("12.34.56.78", "user", "pass");
    3. //Und dann kannst du auch schon loslegen mit Abfragen und Updates und Inserts etc.. Zum Beispiel so:
    4. $query = "SELECT * FROM `ziel_datenbank`.`ziel_tabelle`";
    5. $res = @mysql_query($query);
    6. while($row = @mysql_fetch_assoc($res)){
    7. echo var_dump($row) . "<br>";
    8. }


    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Link275“ ()

    SRY, Ich bin heute ein bisschen un aufnahmefähig...

    Ich habe diese Variablen

    PHP-Quellcode

    1. $name = $_GET['name'];
    2. $altersfrg = $_GET['altersfrg'];
    3. $dauer = $_GET['dauer'];
    4. $more = $_GET['more'];


    Diese Variablen will ich dann in die Datenbank einfügen welche auf einem anderen Domain liegt. Ich weiß leider die IP (oder was auch immer) ist. Bei dem Hosting Manager steht auch nur localhost...

    HILFEE! ?( ?( ?(

    Hoffe kannst mir folgen
    So werde mich dann auch mal beteiligen :D .
    Ich würde es zuerst mal so machen :

    PHP-Quellcode

    1. @mysql_connect("Die Datenbank", "deinen Usernamen", "das angelegte Passwort");
    2. mysql_error("INSERT INTO `test` (`id`, `name`) VALUES ('" . $id . "', '" . $name . "')";

    Hoffe hab dir damit geholfen
    LG vs2010
    Hi,

    @vs2010: verstehe nicht was dein Posting soll :huh:

    @wsk1000:
    one does not simply ... insert unvalidated content! Will heißen, du musst die Daten die du in die Datenbank einfügst vorher validieren. Klar, wenn es statischer content ist dann nicht, aber wenn es sich um variable Daten handelt (und alles im $_GET Array sind variable Daten, da sich diese ganz simpel in der Adressleiste manipulieren lassen) musst du sie zuvor validieren, Stichwort mysql_real_escape_string. Zum Ausgeben von Inhalten aus der Datenbank kann es dann ggf. noch erforderlich sein, diese ebenfalls zu modifizieren, z.B. mit htmlspecialchars, add-/stripslashes, htmlentities, je nach Bedarf und Situation. Mach dich in der Richtung bitte auch noch schlau.


    Zu deiner Frage mit dem Hostnamen / der IP: Offensichtlich hast du ja Zugriff auf das phpMyAdmin auf dem (externen) Ziel-Server. Das heißt du rufst ja sicherlich eine Seite im Browser auf, etwa in der Form phpmyadmin.beispiel.de. Gut dann machst jetzt (du nutzt ja Windows?) die Eingabeaufforderung auf und schreibst ping phpmyadmin.beispiel.de. Dann siehst du die IP. Und die kannst du dann i.d.R. für den Verbindungsaufbau durch mysql_connect verwenden.

    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Link275“ ()

    @Link275: Ich hoffe im Zusammenhang mit htmlspecialchars beziehst du dich nicht auf Injection-Schutz. Ebenso ist da addslashes zu meiden, welches afaik für Angriffe mit Multibyte-Zeichen anfällig ist. mysql_real_escape_string sollte die Wahl sein.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Hi,

    nun ja, je nach Bedarf eben. Für's inserten mysql_real_escape_string, für die Ausgabe ggf. htmlspecialchars und add-/stripslashes ist in einigen Fällen auch immer nützlich. Natürlich hat htmlspecialchars nichts mit SQL-Injection-Schutz zu tun :wacko:
    Ich wollte den TE ja nur generell darauf hinweisen, dass Validierung wichtig ist. Da das hier aber nicht das Haupt-Thema ist, hab ich nur einige Funktionen als Beispiel aufgezählt.

    Link :thumbup:
    Hello World
    Gut, ich wollte es nur, vor Allem gegenüber des TE, klargestellt haben ;)
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    @Link275

    Wo gebe ich bei deinem Code dann die Variablen hinein, welche ich hinzufügen will?

    PHP-Quellcode

    1. $query = "`Infos``Schauspieler``Dauer``Altersbeschränkung``Name``Nummer`SELECT * FROM `dvds` WHERE 1";
    2. $res = @mysql_query($query);
    3. while($row = @mysql_fetch_assoc($res)){
    4. echo var_dump($row) . "<br>";
    5. alert("Hat funktioniert");
    6. }


    PS: Hab das mit der IP hinbekommen :D
    Stimmt... :D :D
    Ich habe gedacht ich bin in JS...
    (Wäre als Überprüfung, ob alles funktioniert hätte)

    Und wie ergäbe es Sinn

    (Nur so: eigentlich find ichs auch nicht so toll um code zu betteln, aber ich habe halt noch leider keine Ahnung in MySql, und ich versuche das halt jetzt irgendwie zu machen)