Startseite › Foren › Deutsches LiveCode-Forum › Anbindung an mySQL DB scheitert
- Dieses Thema hat 8 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 6 Monaten von Gutschi.
-
AutorBeiträge
-
-
Februar 10, 2020 um 15:08 Uhr #18857
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 mouseUpIch 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 -
Februar 10, 2020 um 15:33 Uhr #18861
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 mouseUpAuf 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 mouseUpAls 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!
-
Februar 10, 2020 um 17:51 Uhr #18866
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
-
Februar 11, 2020 um 07:20 Uhr #18869
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ß
-
Februar 11, 2020 um 16:17 Uhr #18878
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
-
Februar 11, 2020 um 18:36 Uhr #18880
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 tDatabasePasswordist 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”
-
Februar 11, 2020 um 19:27 Uhr #18881
Tut mir leid, hier muss ich passen wegen fehlender Kenntnisse in diesem Bereich.
-
Februar 16, 2020 um 13:31 Uhr #18944
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ß!
-
Februar 16, 2020 um 18:43 Uhr #18953
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
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.