Zugriff auf MySQL Datenbank via Wrapper

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Zugriff auf MySQL Datenbank via Wrapper

    Hi Zusammen,

    ich bräuchte dringend Hilfe bei der Bewältigung meines Apps: Ich möchte in aus einer MySQL Datenbank,
    die im Netz liegt, über einen Select... Daten holen und diese diversen Variablen zuweisen um sie dann weiter
    zu verwenden. Ich habe leider keine Ahnung wie ich diesen Zugriff über einen Wrapper steuere, auch im Netz
    habe ich nichts passendes gefunden. Vll. kann mir jemand anhand eines Code-Beispiels kurz erklären wie ich
    vor zu gehen habe bzw. was ich alles machen muss.

    Vielen Dank!!
  • Hi,

    verwendest du das auch für MySQL Zugriffe? Ich brauch nur was total einfaches.
    Hab aber bei REST jetzt keine Möglichkeit entdeckt nen INNER Join auf die Tabellen zu machen,
    weisst du ob das geht?

    Vielen Dank auf jeden Fall für die Info.

    Sonst noch jemand ideen oder vorschläge?
  • Dann verstehe ich Dein Problem nicht.

    Wenn es noch einfacher sein soll, dann schreib halt ein php script welches dir beim Aufruf die Daten liefert, oder greif von der App direkt auf die DB zu. Beides zwar mehr als bedenklich was die Sicherheit angeht aber vlt ist es Dir ja wurscht wenn die DB gehackt wird.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Hi Claus,

    Vll hab ich ein wenig falsch ausgedrückt, das tut mir leid. Natürlich ist mir die Sicherheit meiner DB wichtig.

    Die Einfachheit ist mir nicht wichtig, mir ist nur wichtig, dass ich die Daten die ich brauch bekomm.
    Ich hab jetzt bei REST nur nicht die Möglichkeit gefunden nen Join zu machen, deswegen die Frage,
    ob du hier vll. nen Tip hast oder irgendwas weisst. Mit PHP hab ich leider auch überhaupt keine Erfahrung,
    wie ich das machen könnte. Ich schau mir jetzt nochmal REST genau an.

    Bin noch relativ neu in der iPhone-Entwicklung und deswegen stetig am lernen und dankbar für alles was ich
    an Tipps, etc. bekomm.

    Vielen Dank!

    Gruß

    Pretime
  • Also am Ende des Tages brauchst Du auf Deinem Webserver etwas, was Dir in einem für Deine App dienlichem Format die Daten liefert, die Du brauchst. Ob man das jetzt REST, SOAP, RPC oder wie auch immer nennt, spielt keine Rolle.

    Mein Tip:
    1. Wickle die SQL-Abfragen komplett serverseitig ab, mit einer Sprache, die Du verstehst und bedienen kannst.
    2. Trickere diese Abfragen von Deiner App aus, über simple HTTP/HTTPS Requests (GET/POST) (von mir aus auch mit Authentifizieren des Clients gegenüber dem Server)
    2. Liefere dem Client ein Result in XML, JSON, CSV - was immer Du willst
    3. Parse in Deiner App das Result und verwende es, wie Du willst.

    4. Denk Dir einen coolen Namen und einer geläufige Abkürzung dafür aus und schreibe ein Buch über diese geniale neue Technologie :)

    Gruss
    Apoc
  • Schau mal:
    wiki.osxentwicklerforum.de/doku.php?id=wiki:forums-faq

    Ich sollte mal unser Wiki noch weiter ausbauen..macht alle mit! :)

    EDIT: Was apoc da vorschlägt ist eigentlich schon REST ;)

    Gehen wir davon aus, dass Deine SQL Statements alles prepared Statements sind, es gibt ja keinen einzigen Grund dagegen und sehr viele dafür. Das heisst also, Du hast irgendwo in Deinem Code Statements wie
    SELECT ... FROM ... JOIN ... WHERE a=?, b=?, c=?
    und füllst dann die ? mit den Parametern aus Deinem Code auf. Anstelle das nun in Deinem lokalen Code zu machen, packst Du das einfach in ein PHP/CGI Skript auf einem Server, der genau die Parameter bekommt, in das Statement füllt und das Ergebnis zurückgibt.
    In seltenen Fällen baut man sich ja kompliziertere Queries zusammen, das kannst Du aber genausogut auf dem Server regeln.
    C++

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von zerm ()

  • Pretime schrieb:

    Hi,
    Hab aber bei REST jetzt keine Möglichkeit entdeckt nen INNER Join auf die Tabellen zu machen,
    weisst du ob das geht?
    REST ist ein Konzept, keine Technologie. Hinter REST steckt immer serverseitige Programmierung (mit wenigen Ausnahmen wie CouchDB, das von Haus aus REST spricht), also PHP, Ruby, Python, Java, Perl, …

    Meine Meinung: wenn Du nur sehr begrenzte Funktionalitäten brauchst und die API nicht öffentlich sein braucht, vergiss das mit REST und nimm ein simples Wrapper-Skript in einer Sprache Deiner Wahl.

    Carsten
  • Thallius schrieb:

    Wenn es noch einfacher sein soll, dann schreib halt ein php script welches dir beim Aufruf die Daten liefert, oder greif von der App direkt auf die DB zu. Beides zwar mehr als bedenklich was die Sicherheit angeht aber vlt ist es Dir ja wurscht wenn die DB gehackt wird.
    Nix für ungut, aber das ist – was das PHP-Skript betrifft – einfach nur lächerlich. Die Komplexität, ein REST-API in einer beliebigen Sprache zu schreiben (denn das kommt ja nicht nirgendwoher, sondern muss gebaut werden, weil MySQL nicht weiß, was REST ist), ist größer als die, ein minimal-einfaches Wrapper-Skript in der gleichen Sprache zu schreiben (egal, ob PHP oder eine andere Sprache) und bietet naturgemäß zwangsweise mehr Angriffspotential. Wer zu doof ist, ein PHP-Skript (um bei Deinem Beispiel zu bleiben – für andere Sprachen gilt das aber genaus) der benötigten »Komplexität« ohne Lücken zu implementieren, wird ebenso daran scheitern, eine REST-API anzubieten.

    Carsten
  • Nasir schrieb:

    Pretime schrieb:

    Hi,
    Hab aber bei REST jetzt keine Möglichkeit entdeckt nen INNER Join auf die Tabellen zu machen,
    weisst du ob das geht?
    REST ist ein Konzept, keine Technologie. Hinter REST steckt immer serverseitige Programmierung (mit wenigen Ausnahmen wie CouchDB, das von Haus aus REST spricht), also PHP, Ruby, Python, Java, Perl, …

    Meine Meinung: wenn Du nur sehr begrenzte Funktionalitäten brauchst und die API nicht öffentlich sein braucht, vergiss das mit REST und nimm ein simples Wrapper-Skript in einer Sprache Deiner Wahl.

    Carsten

    Nasir schrieb:

    Thallius schrieb:

    Wenn es noch einfacher sein soll, dann schreib halt ein php script welches dir beim Aufruf die Daten liefert, oder greif von der App direkt auf die DB zu. Beides zwar mehr als bedenklich was die Sicherheit angeht aber vlt ist es Dir ja wurscht wenn die DB gehackt wird.
    Nix für ungut, aber das ist – was das PHP-Skript betrifft – einfach nur lächerlich. Die Komplexität, ein REST-API in einer beliebigen Sprache zu schreiben (denn das kommt ja nicht nirgendwoher, sondern muss gebaut werden, weil MySQL nicht weiß, was REST ist), ist größer als die, ein minimal-einfaches Wrapper-Skript in der gleichen Sprache zu schreiben (egal, ob PHP oder eine andere Sprache) und bietet naturgemäß zwangsweise mehr Angriffspotential. Wer zu doof ist, ein PHP-Skript (um bei Deinem Beispiel zu bleiben – für andere Sprachen gilt das aber genaus) der benötigten »Komplexität« ohne Lücken zu implementieren, wird ebenso daran scheitern, eine REST-API anzubieten.

    Carsten


    Jain, wenn Du gar keine Ahnung von PHP (oder auch anderen Scriptsprachen hast, ich bleibe jetzt einfach mal bei PHP) dann kannst Du weder ein kleines Script selber schreiben noch eine REST API. Das ist richtig.
    Wenn Du ein wenig Ahnung von PHP hast, dann kannst du ein kleines Script schreiben das funktioniert, die Sicherheit wirst Du aber nicht hinbekommen. Alternativ kannst du aber auch eins der hundertausend REST Samples aus dem Internet nehmen und anpassen und dann hast du die Sicherheit. Oder sehe ich das so falsch ?

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Nasir schrieb:

    Wenn Du ein wenig Ahnung von PHP hast, dann kannst du ein kleines Script schreiben das funktioniert, die Sicherheit wirst Du aber nicht hinbekommen. Alternativ kannst du aber auch eins der hundertausend REST Samples aus dem Internet nehmen und anpassen und dann hast du die Sicherheit. Oder sehe ich das so falsch ?
    Ja, das siehst Du falsch, sofern Du nicht nur den Idealfall betrachtest. Denn fertiger Code, den man irgendwo im Netz findet, kann ja durchaus unglaublich schlecht geschrieben und für die komplette Palette von SQL Injection bis hin zu Directory Traversal anfällig sein. Gerade für einen Einsteiger in der Materie ist das nicht erkennbar.
    Unter der gegebenen Prämisse – ein simples Skript, das nur aus der DB liest – halte ich daher ein einfach gehaltenes Eigenbau-Skript für absolut akzeptabel, sofern Prepared Statements benutzt werden und man optimalerweise den verwendeten MySQL-Account so konfiguriert, dass dieser nur SELECTs (und zudem nur in der einen, benötigten Datenbank) ausführen kann.

    Carsten