2010-01-13 40 views
5

只是想知道是否有人可以給出一個使用erlang-mysql模塊的實例(http://code.google.com/p/erlang-mysql-driver/)。Erlang mysql示例

我是erlang的新手,我試圖用一些erlang批處理過程替換一些舊腳本。我能夠連接到數據庫,甚至完成查詢,但我不知道如何使用結果。以下是我目前有:

-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]), 
... 

我也有,我也用得到的只是一列(如果存在)事先準備好的聲明,這將有助於瞭解如何訪問的結果以及

回答

4

這在mysql.erlsource code描述:

你的結果會是{data, MySQLRes}

FieldInfo = mysql:get_result_field_info(MysqlRes),其中FieldInfo是一個{Table, Field, Length, Name}元組列表。

AllRows = mysql:get_result_rows(MysqlRes),其中AllRows是列表的列表,每個列表代表一行。

+0

謝謝,作爲附件: 什麼是解析結果的最佳方法?有時它會導致0行或有時會有很多行。在這種情況下,如果我需要獲取電子郵件地址和名稱(來自用戶表,假設結構是[id,email,name])。一些示例代碼將非常棒。 – Matt 2010-01-14 23:14:39

+1

'[do_sg(電子郵件,名稱)|| [_,電子郵件,名稱] < - AllRows]'。順便說一句,如果你不需要身份證,你不應該查詢它。 – Zed 2010-01-15 20:37:34

0

應檢查行的計數,然後 執行:

例如: 洛倫=二郎:長度(行),如果 洛倫> 0 - > {成功}; true - > {failed,「Row is null」} end。

0

在嘗試使用Erlang/OTP附帶的ODBC模塊並且遇到問題後,我推薦使用mysql/otp驅動程序。我在幾個小時內用它替換了ODBC,它工作正常。

他們有好的documentation所以我不會在這裏添加例子。