Reputation: 450
Just wondering if anyone could give a working example of using the erlang-mysql module (http://code.google.com/p/erlang-mysql-driver/).
I am new to erlang and I am trying to replace some old scripts with a few erlang batch processes. I am able to connect to the DB and even complete a query, but I am not sure how I use the results. Here is what I currently have:
-include("../include/mysql.hrl").
...
mysql:start_link(p1, "IP-ADDRESS", "erlang", "PASSWORD", "DATABASE"),
Result1 = mysql:fetch(p1, <<"SELECT * FROM users">>),
io:format("Result1: ~p~n", [Result1]),
...
I also have a prepared statement that I am also using to get just one row (if it exists) and it would be helpful to know how to access the results on that as well
Upvotes: 5
Views: 10962
Reputation: 918
After trying to use the ODBC module that comes with Erlang/OTP, and running into problems, I recommend the mysql/otp driver. I replaced ODBC with it in just a few hrs and it works fine.
They have good documentation so I will not add examples here.
Upvotes: 0
Reputation: 1
you should check the count of rows, then execute:
eg: RowLen = erlang:length(Row), if RowLen > 0 -> {success}; true -> {failed, "Row is null"} end.
Upvotes: 0
Reputation: 57658
This is described in the source code of mysql.erl
:
Your result will be {data, MySQLRes}
.
FieldInfo = mysql:get_result_field_info(MysqlRes)
, where FieldInfo
is a list of {Table, Field, Length, Name}
tuples.
AllRows = mysql:get_result_rows(MysqlRes)
, where AllRows
is a list of lists, each representing a row.
Upvotes: 4