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
          Administrator

            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
              Administrator

                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
                  Administrator

                    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.