Anbindung an mySQL DB scheitert

Startseite Foren Deutsches LiveCode-Forum Anbindung an mySQL DB scheitert

Schlagwörter: ,

Ansicht von 8 Antwort-Themen
  • Autor
    Beiträge
    • #18857
      Gutschi
      Teilnehmer

      Hallo zusammen,

      ich bin nach über 2 Tagen ratlos, wie ich es schaffe eine mySQL Datenbank ansprechen.

      Im Buch und auch hier im Forum werden die Befehle/der Code ja geschrieben, leider klappt es bei mir nicht.

      Folgenden Code habe ich im Stack geschrieben:

      on mouseUp
      put revOpenDatabase(„mysql“, „111mb.de“, db1316018501-282, db1316018501-282, 5bAZnj80nZc0bkBiTj) into dbid
      put „SELECT * FROM personendaten“ into sql
      put revDataFromQuery(tab,return,dbid,sql) into ergebnis
      put ergebnis into field „ausgabeFeld“ of card „startseite“
      end mouseUp

      Ich habe einen Button und ein Ausgabefeld, in welcher die Personendaten aus dem Beispiel im Buch ausgegeben werden sollen. In der Datenbank steht ein einziger Datensatz.

      Folgende Fehlermeldunge bekomme ich:

      line n/a (External handler execution error: revdberr,invalid connection id) near „revdberr,invalid connection id“

      Wenn ich das richtig deute, funktioniert das Ansprechen der Datenbank gar nicht oder? Gehostet ist die Datenbank bei 111mb.de, ist es richtig, dass ich dann einfach nur diese URL auch eingebe? Datenbankname und -User sind jeweils gleich, das PW ist auch korrekt.

      Ich bin einfach ratlos und kurz davor die Tastatur aus dem Fenster zu schmeißen… 😉
      Gibt es sonst die Möglichkeit über XAMPP und MyPHPadmin eine DB zu erstellen und dann über localhost auf diese zuzugreifen?

      Für einen Rat, Tipps und insbesondere die Lösung meines Problems vorab vielen lieben Dank.

      Gruß,
      Daniel

    • #18861
      Gutschi
      Teilnehmer

      Update:

      Habe mich hier nochmal durchgelesen und nun folgendes probiert, was aber ebenfalls nicht klappt:

      Ich habe einen Button mit dem Namen „Connect“ und ein ausgabeFeld (field), wenn ich auf den Button klicke soll die Datenbank angesprochen werden und alles aus der Datenbank in das ausgabeFeld geschrieben/angezeigt werden. Ich habe die Datenbank heißt „livecode“, die Tabelle „Personendaten“. Ich habe die mySQL-DB über XAMPP laufen.

      Im Stack steht folgender Code:

      on mouseUp
      — use a global variable to hold the connection ID so other scripts can use it
      global gConnectionID

      — set up the connection parameters – edit these to suit your database
      put „MySQL“ into tDatabaseTyp
      put „localhost“ into tDatabaseAddress
      put „livecode“ into tDatabaseName
      put „root“ into tDatabaseUser
      put „“ into tDatabasePassword

      — connect to the database
      put revOpenDatabase(tDatabaseTyp, tDatabaseAddress, tDatabaseName, tDatabaseUser, tDatabasePassword) into tResult

      — check if it worked and display an error message if it didn’t
      — & set the connection ID global
      if tResult is a number then
      put tResult into gConnectionID
      answer info „Connected to the database.“ & cr & „Connection ID = “ & gConnectionID
      else
      put empty into gConnectionID
      answer error „Unable to connect to the database:“ & cr & tResult
      end if
      end mouseUp

      Auf dem Button (Name Connect) steht folgender Code:

      global gConnectionID
      on mouseUp
      put „SELECT * FROM personendaten“ into sql
      put revDataFromQuery(tab,return,dbid,sql) into ergebnis
      put ergebnis into field „ausgabeFeld“ of card „startseite“
      end mouseUp

      Als Fehlermeldung bekomme ich:
      button „Connect“: execution error at line n/a (External handler execution error: revdberr,invalid connection id) near „revdberr,invalid connection id“

      Bitte um Hilfe, vielen Dank!

    • #18866
      Klaus Major
      Verwalter

      Hallo Daniel,

      die meisten Provider verbieten aus Sicherheitsgründen den direkten Zugang zu einer Online-DB und verlangen sogenannte „Middleware“, also ein PHP- oder LC-Serverskript zwischen Enduser und Datenbank.

      Klingt als sein das der Fall bei Dir.

      Was siehst Du denn beim Verbinden mit der DB, also im ersten MOUSEUP Handler hier?
      Das hier:
      Connected to the database.“ & cr & „Connection ID = “ & gConnectionID
      Oder das hier:
      Unable to connect to the database:“ & cr & tResult
      ?

      Gruß

      Klaus

    • #18869
      Gutschi
      Teilnehmer

      Hallo Klaus,

      Danke für deine Antwort, ich prüfe das später mal.

      Aber wenn ich zum Test erst mal über localhost von XAMPP gehe und das bei mir local auf dem Rechner mache, dann müsste das doch eigentlich funktionieren oder?

      Wie kann ich denn sonst eine Middleware über LC ansprechen?

      Danke dir, Lieber Gruß

    • #18878
      Klaus Major
      Verwalter

      Aber wenn ich zum Test erst mal über localhost von XAMPP gehe und das bei mir local auf dem Rechner mache, dann müsste das doch eigentlich funktionieren oder?

      Ja, müsste…
      Probiere es doch einfach mal aus, wo Du eh gerade dabei bist. 😎

      Wie kann ich denn sonst eine Middleware über LC ansprechen?

      Kommt auf die Middleware an. Für PHP mal im Internet suchen -> PHP Datenbankabfrage

    • #18880
      Gutschi
      Teilnehmer

      Ich habs bei XAMPP probiert, leider die gleiche Fehlermeldung. Geht das überhaupt, wenn eine Datei nicht in htdocs ist, dass die dann auf localhost zugreifen kann? 😕

      das ist mein Code:
      put „MySQL“ into tDatabaseTyp
      put „localhost“ into tDatabaseAddress
      put „livecode“ into tDatabaseName
      put „root“ into tDatabaseUser
      put „“ into tDatabasePassword

      ist denn „localhost“ als DatabaseAdress korrekt oder muss da vielleicht noch was in die URL rein?

      root und „“ sind ja standardmäßig bei localhost als Benutzer und PW gesetzt.

      Hier nochmal die Fehlermeldung:

      button „Connect“: execution error at line n/a (External handler execution error: revdberr,invalid connection id) near „revdberr,invalid connection id“

    • #18881
      Klaus Major
      Verwalter

      Tut mir leid, hier muss ich passen wegen fehlender Kenntnisse in diesem Bereich.

    • #18944
      Axwald
      Teilnehmer

      Hallo,

      zuerst mal musst Du sicherstellen, daß Du eine Verbundung zur DB hast. Besorg Dir „HeidiSQL“, am Besten über „heise.de/download“. Das brauchst Du sowieso.
      Damit kannst Du recht komfortabel die Parameter für die Verbindung zusammensuchen und testen.

      Hostname „111mb.de“ geht schon mal nicht, das ist die generische Domain – „gutschi.111mb.de“ oder so was könnte schon eher gehen, Du mußt Deinen Account ansprechen (wenn 111mb das überhaupt zulässt)!
      Bei einer lokalen Installation nimm die interne IP des Rechners, auf dem die DB läuft: „192.168.1.244“ oder so – „localhost“ geht nicht immer.

      Also: Hostname, Benutzer, Passwort eingeben, das PullDown „Datenbanken“ betätigen: Wenn Du „information_schema“ und „db1316018501-282“ (oder so ähnlich) siehst, hast Du gewonnen. Wenn nicht, stimmen Deine Zugangsdaten nicht. Wiederhole …

      Wenn’s geht, wähle „db1316018501-282“ und speichere die Einstellungen. Jetzt hast Du getestete Zugangsdaten für LC & darüber hinaus ein fertig konfiguriertes Tool, um deine DB zu verwalten, um SQL statments zu testen u.v.m.

      Erst jetzt macht es Sinn, „revOpenDatabase“ aufzurufen.

      Viel Spaß!

    • #18953
      Gutschi
      Teilnehmer

      Hey Axwald,

      danke für deine Beschreibung, ich habe das schon vermutet, dass ich irgendwas mit der Verbindung nicht hinbekomme, das aber nicht an LC liegt.

      Leider bin ich Mac Nutzer, dafür gibt es wohl kein HeidiSQL, ich lade aber gerade DBeaver, das soll ja eine Alternative sein, kennst du sonst noch eine Alternative für Mac?

      Lieber Gruß,
      Daniel

Ansicht von 8 Antwort-Themen
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.