2013-07-12 69 views
0

我已經在erlang中使用過sql連接查詢但是下面的代碼被執行了並且沒有得到答案,我一直在想可能是錯誤發生在查詢到list_to_binary轉換 Packet = list_to_binary([?MYSQL_QUERY_OP, Query])這行執行。如何在erlang中編寫binary_to_list mysql連接查詢?

ejabberd_odbc:sql_query(
      "192.168.1.14", 
      ["select p.id,p.name,p.age,p.phone,i.question from palani p join india i on i.palaniId = p.id;"]). 

我知道我不會發送準備數據。請讓我知道如何發送正確的格式?

回答

1

當你寫[「一個字符串」]你正在建立一個列表包含一個單一的元素,字符串「一個字符串」。該函數需要一個字符串,因此您只需使用「select pa.i p.id,p.name,p.age,p.phone,i.question從palani p加入印度i.palaniId = p.id;」。刪除[]。

在你的例子中,在閱讀文檔後,我不確定你需要最終的';',因爲據說分號應該用於分批查詢。

以同樣的方式,我不覺得語法「從表中選擇...... p加入...」

最後,如果你想要做動態建立查詢,您可以使用io_lib:format/2和++運算符來構建它

+0

不使用;並使用AS關鍵字ejabberd_odbc創建別名:sql_query( 「192.168.1.14」, [「選擇p.id作爲id,p.name作爲名稱,p.age作爲時間,p.phone作爲phone,i.question作爲從palani qu作爲p加入印度作爲我在i.palaniId = p.id「])。 –