如何在erlang中编写binary_to_list mysql连接查询?

时间:2013-07-12 12:50:56

标签: erlang ejabberd

我在erlang中使用了sql join查询但是下面的代码被执行了并且没有得到答案,我一直在想可能是在查询到list_to_binary转换时发生了错误 Packet = list_to_binary([?MYSQL_QUERY_OP, Query])这一行执行。

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 个答案:

答案 0 :(得分:1)

当您编写[“一个字符串”]时,您正在构建一个包含一个单独元素的列表,即字符串“a string”。该函数期待一个字符串,所以你只需要使用“选择p.id,p.name,p.age,p.phone,i.question from palani p join india i on i.palaniId = p.id;”。删除[]。

在您的示例中,在阅读文档后,我不确定您是否需要最终的';',因为据说分号应该用于分批查询。

以同样的方式,我找不到语法“select ... from table p join ...”

最后,如果你想动态构建你的查询,你可以使用io_lib:format / 2和++运算符来构建它