ich erlang-mysql-driver
zum Laufen zu bringen versuchen, schaffte ich es einzurichten und Abfragen zu machen, aber es gibt zwei Dinge, die ich nicht tun kann. (https://code.google.com/archive/p/erlang-mysql-driver/issues)richtiger Weg, um (erhalten aus/Einfügen in) Tabelle mit Erlang Mysql Treiber
(BTW, ich bin neu in Erlang)
So hier ist mein Code MySQL
zu verbinden.
<erl>
out(Arg) ->
mysql:start_link(p1, "127.0.0.1", "root", "azzkikr", "MyDB"),
{data, Result} = mysql:fetch(p1, "SELECT * FROM messages").
</erl>
1. Ich kann keine Daten aus der Tabelle abrufen.
mysql.erl
enthält keine spezifischen Informationen darüber, wie Tabellendaten zu bekommen, aber das ist das weiteste, was ich gehen könnte.
{A,B} = mysql:get_result_rows(Result),
B.
Und das Ergebnis war:
ERROR erlang code threw an uncaught exception:
File: /Users/{username}/Sites/Yaws/index.yaws:1
Class: error
Exception: {badmatch,[[4,0,<<"This is done baby!">>,19238],
[5,0,<<"Success">>,19238],
[6,0,<<"Hello">>,19238]]}
Req: {http_request,'GET',{abs_path,"/"},{1,1}}
Stack: [{m181,out,1,
[{file,"/Users/{username}/.yaws/yaws/default/m181.erl"},
{line,18}]},
{yaws_server,deliver_dyn_part,8,
[{file,"yaws_server.erl"},{line,2818}]},
{yaws_server,aloop,4,[{file,"yaws_server.erl"},{line,1232}]},
{yaws_server,acceptor0,2,[{file,"yaws_server.erl"},{line,1068}]},
{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,240}]}]
Ich verstehe, dass irgendwie muss ich das zweite Element erhalten und foreach verwenden um alle Daten zu erhalten, aber Strings werden in verschiedenen Format zurückgegeben wie abgefragt String Success
aber zurückgegebener String ist <<"Success">>
.
{badmatch,[[4,0,<<"This is done baby!">>,19238],
[5,0,<<"Success">>,19238],
[6,0,<<"Hello">>,19238]]}
erste Frage lautet: Wie bekomme ich Daten aus der Tabelle?
2. Wie fügt man Werte in eine Tabelle ein, die Variablen verwenden?
Ich kann Daten in die Tabelle einfügen Verwendung dieser Methode:
Msg = "Hello World",
mysql:prepare(add_message,<<"INSERT INTO messages (`message`) VALUES (?)">>),
mysql:execute(p1, add_message, [Msg]).
Aber es gibt zwei Dinge, die ich Mühe habe, 1. Ich bin Daten Einfügen ohne <<
und >>
Betreiber, denn wenn ich Msg = << ++ "Hello World" >>,
erlang tun eine Ausnahme wirft (ich glaube, ich etwas falsch tue), ich weiß nicht, ob sie erforderlich sind, aber ohne sie bin ich der Lage, Daten in Tabelle stört mich außer diesen Fehler einfügen nach der Ausführung:
yaws code at /Users/{username}/Yaws/index.yaws:1 crashed or ret bad val:{updated,
{mysql_result,
[],
[],
1,
[]}}
Req: {http_request,'GET',{abs_path,"/"},{1,1}}
zurückgegebenes Atom ist updated
, während ich befahl, Daten einzufügen.
Frage 2 ist: Wie füge ich Daten in die Tabelle in einer richtigen Weise ein?
Warum haben Sie diesen bestimmten mysql-Treiber gewählt? Es ist wie 2007, als Sie wahrscheinlich noch für Erlang bezahlen mussten! Ich wäre überrascht, wenn es tatsächlich funktioniert hätte, sowohl MySQL als auch Erlang hätten seither etwa ein Dutzend Versionsänderungen durchlaufen. Irgendein Grund dafür? – Amiramix
Wenn Sie zwei Fragen haben, sollten Sie sie auf die beiden Fragen aufteilen. –