二郎 mysql 例子

Posted

技术标签:

【中文标题】二郎 mysql 例子【英文标题】:Erlang mysql example 【发布时间】:2010-01-13 21:52:48 【问题描述】:

只是想知道是否有人可以给出使用 erlang-mysql 模块的工作示例 (http://code.google.com/p/erlang-mysql-driver/)。

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

我还有一个准备好的语句,我也用它来获取一行(如果存在的话),知道如何访问结果也会很有帮助

【问题讨论】:

【参考方案1】:

这在mysql.erl的source code中有描述:

您的结果将是data, MySQLRes

FieldInfo = mysql:get_result_field_info(MysqlRes),其中FieldInfoTable, Field, Length, Name 元组的列表。

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

【讨论】:

谢谢,作为补充:解析结果的最佳方法是什么?有时它会导致 0 行或有时会有很多行。鉴于此,如果我需要获取电子邮件地址和名称(从用户表中,假设结构是 [id, email, name])。一些示例代码会非常棒。 [do_sg(Email, Name) || [_,Email,Name] &lt;- AllRows]。顺便说一句,如果您不需要 ID,则不应查询它。【参考方案2】:

您应该检查行数, 然后执行:

例如: RowLen = erlang:length(Row), 如果 行列 > 0 -> 成功; 真-> 失败,“行为空” 结束。

【讨论】:

【参考方案3】:

在尝试使用Erlang/OTP自带的ODBC模块,遇到问题后,推荐mysql/otp驱动。我在几个小时内用它替换了 ODBC,它工作正常。

他们有很好的documentation,所以我不会在这里添加示例。

【讨论】:

以上是关于二郎 mysql 例子的主要内容,如果未能解决你的问题,请参考以下文章

mysql定时任务简单例子

JDBC连接MySql例子

mysql join 相关例子

MySQL 之 扩展例子

一个二郎演员小演示

二郎心是如何工作的?