`
dxm1986
  • 浏览: 429851 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

erlang连接到mysql数据库

阅读更多

erlang连接到mysql数据库

 

 

一,驱动的下载与安装

 

1.        下载erlang-mysql-driver

     下载地址如下:

     svn checkout http://erlang-mysql-driver.googlecode.com/svn/trunk/     mysql

 (如果你没有安装SVN,附件中提供源码下载)

2.           src下面的所有源码进行编译

      erlc *.erl

 

3.           然后在mysql 下面创建ebin,并将src 下面的所有*.beam拷贝到ebin     下面

4.           mysql整个文件夹拷贝到erlang/lib下面

 

二, 操作数据库

1                连接mysql:

mysql:start_link(PoolId, "localhost", "root", "password", "databasename").

 

2          mysql:connect(PoolId, Host, ?PORT, User, Password, Database, undefined,

             Reconnect).%%建立一个连接

 

3           数据操作

                   添加:

mysql:fetch(PoolId,<<”insert into….”>>).

   查询:

mysql:fetch(p1,<<"select * from user">>).

 

4                接收到数据后怎么处理

                   fetch(PoolId, "select * from user") -> Result

                   %%%     Result = {data, MySQLRes} | {updated, MySQLRes} |

                            %%%     {error, MySQLRes}

 

n  查询{data, MySQLRes} = fetch(PoolId, <<"select * from user">>).

Ø  获取字段名称信息:

            FieldInfo = mysql:get_result_field_info(MysqlRes).

Ø  获取字段值:

            AllRows   = mysql:get_result_rows(MysqlRes)

                  

n  更新:

{updated,UD} = mysql: fetch(PoolId, <<"update  * from user">>).

                 AffectedRow = mysql:get_result_affected_rows(UD).%%获得影响的记录数

 

n  出错

{error,Err} = fetch(PoolId, <<"update  * from user">>).

Reason    = mysql:get_result_reason(MysqlRes).%%出错原因

分享到:
评论
1 楼 developerworks 2011-05-22  
<div class="quote_title">dxm1986 写道</div><div class="quote_div"><p><strong>erlang连接到mysql数据库</strong></p>
<p> </p>
<p> </p>
<p class="MsoListParagraph"><span lang="EN-US"><strong>一,</strong></span><span><strong>驱动的下载与安装</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 21.0pt; text-indent: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoListParagraph"><span><span style="font-size: 12.0pt;" lang="EN-US"><span>1.<span style="font: 7.0pt ;">       
</span></span></span></span><span>下载</span><span style="font-size: 12.0pt;" lang="EN-US">e</span><span><span lang="EN-US">rlang-mysql-driver</span></span><span></span></p>
<p class="MsoListParagraph" style="margin-left: 42.0pt; text-indent: 0cm;"><span><span lang="EN-US"><span>     </span></span></span><span><span>下载地址如下:</span></span><span></span></p>
<p class="MsoListParagraph" style="margin-left: 42.0pt; text-indent: 0cm;"><span><span lang="EN-US"><span>     </span></span></span><span><span lang="EN-US">svn checkout http://erlang-mysql-driver.googlecode.com/svn/trunk/
<span>    </span>mysql</span></span></p>
<p class="MsoListParagraph" style="margin-left: 42.0pt; text-indent: 0cm;"><span><span lang="EN-US"> <span style="color: #339966;"><strong>(如果你没有安装SVN,附件中提供源码下载)</strong></span></span></span></p>
<p class="MsoListParagraph"><span><span lang="EN-US"><span>2.<span style="font: 7.0pt ;">    
</span></span></span></span><span><span lang="EN-US"><span>      </span></span></span><span><span>对</span></span><span><span lang="EN-US">src</span></span><span><span>下面的所有源码进行编译</span></span><span></span></p>
<p class="MsoListParagraph" style="margin-left: 42.0pt; text-indent: 0cm;"><span><span lang="EN-US"><span>      </span>erlc *.erl</span></span></p>
<p class="MsoListParagraph" style="margin-left: 21.0pt; text-indent: 0cm;"><span><span lang="EN-US"> </span></span></p>
<p class="MsoListParagraph"><span><span lang="EN-US"><span>3.<span style="font: 7.0pt ;">    
</span></span></span></span><span><span lang="EN-US"><span>      </span></span></span><span><span>然后在</span></span><span><span lang="EN-US">mysql </span></span><span><span>下面创建</span></span><span><span lang="EN-US">ebin</span></span><span><span>,并将</span></span><span><span lang="EN-US">src </span></span><span><span>下面的所有</span></span><span><span lang="EN-US">*.beam</span></span><span><span>拷贝到</span></span><span><span lang="EN-US">ebin<span>     </span></span></span><span><span>下面</span></span><span></span></p>
<p class="MsoListParagraph"><span><span lang="EN-US"><span>4.<span style="font: 7.0pt ;">    
</span></span></span></span><span><span lang="EN-US"><span>      </span></span></span><span><span>将</span></span><span><span lang="EN-US">mysql</span></span><span><span>整个文件夹拷贝到</span></span><span><span lang="EN-US">erlang/lib</span></span><span><span>下面</span></span><span></span></p>
<p class="MsoListParagraph" style="margin-left: 21.0pt; text-indent: 0cm;"><span><span lang="EN-US"> </span></span></p>
<p class="MsoListParagraph"><span><span lang="EN-US"><strong>二,</strong><span style="font: 7.0pt ;"><strong>
</strong></span></span></span><span><span><strong>操作数据库</strong></span></span><span></span></p>
<p class="MsoListParagraph"><span><span lang="EN-US"><span>1<span style="font: 7.0pt ;">               
</span></span></span></span><span><span><strong>连接</strong></span></span><span><span lang="EN-US"><strong>mysql:</strong></span></span></p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;"><span><span lang="EN-US">mysql:start_link(</span></span><span lang="EN-US">PoolId</span><span><span lang="EN-US">,
"localhost", "root", "password", "databasename").</span></span></p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoListParagraph"><span lang="EN-US"><span style="white-space: pre;"> </span>2<span>          </span>mysql:connect(PoolId,
Host, ?PORT, User, Password, Database, undefined,</span></p>
<p class="MsoListParagraph" style="margin-left: 21.0pt; text-indent: 0cm;"><span lang="EN-US"><span>         </span><span>   
</span>Reconnect).<strong>%%</strong></span><span><strong>建立一个连接</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 21.0pt; text-indent: 0cm;"><span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 21.0pt;"><span lang="EN-US">3<span>           </span></span><span><strong>数据操作</strong></span></p>
<p class="MsoNormal" style="margin-left: 21.0pt;"><span lang="EN-US"><span>                   </span></span><span><strong>添加:</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;"><span lang="EN-US">mysql:fetch(PoolId,&lt;&lt;”insert into….”&gt;&gt;).</span></p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;"><span>   <strong>查询:</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;"><span lang="EN-US">mysql:fetch(p1,&lt;&lt;"select * from
user"&gt;&gt;).</span></p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;"> </p>
<p class="MsoListParagraph" style="margin-left: 63.0pt; text-indent: 0cm;">
</p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"><strong>4                </strong></span><span style=""><strong>接收到数据后怎么处理</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-align: left;"><span lang="EN-US"><span style="">                   </span>fetch(PoolId,
"select * from user") -&gt; Result</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-align: left;"><span lang="EN-US"><span style="">                   </span>%%%<span style="">     </span>Result = {data, MySQLRes} | {updated,
MySQLRes} |</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"><span style="">                            </span>%%%<span style="">     </span>{error, MySQLRes}</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"> </span></p>
<p class="MsoListParagraph" style=""><span style="font-family: Wingdings;" lang="EN-US"><span style="">n<span style='font: 7.0pt "Times New Roman";'>  </span></span></span><span style=""><strong>查询</strong>:</span><span lang="EN-US">{data,
MySQLRes} = fetch(PoolId, &lt;&lt;"select * from user"&gt;&gt;).</span></p>
<p class="MsoListParagraph" style=""><span style="font-family: Wingdings;" lang="EN-US"><span style="">Ø<span style='font: 7.0pt "Times New Roman";'>  </span></span></span><span style="">获取字段名称信息</span><span lang="EN-US">:</span></p>
<p class="MsoListParagraph" style="margin-left: 42pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"><span style="">         </span><span style="">  
</span>FieldInfo = mysql:get_result_field_info(MysqlRes).</span></p>
<p class="MsoListParagraph" style=""><span style="font-family: Wingdings;" lang="EN-US"><span style="">Ø<span style='font: 7.0pt "Times New Roman";'>  </span></span></span><span style="">获取字段值:</span></p>
<p class="MsoListParagraph" style="margin-left: 42pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"><span style="">         </span><span style="">  
</span>AllRows<span style="">   </span>=
mysql:get_result_rows(MysqlRes)</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"><span style="">                   </span></span></p>
<p class="MsoListParagraph" style=""><span style="font-family: Wingdings;" lang="EN-US"><span style="">n<span style='font: 7.0pt "Times New Roman";'>  </span></span></span><span style=""><strong>更新</strong></span><span lang="EN-US"><strong>:</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 78.15pt; text-indent: 0cm; text-align: left;"><span lang="EN-US">{updated,UD} = mysql: fetch(PoolId, &lt;&lt;"update
<span style=""> </span>* from user"&gt;&gt;).</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"><span style="">         </span><span style="">  
</span><span style="">  </span><span style="">   </span>AffectedRow = mysql:get_result_affected_rows(UD).%%</span><span style="">获得影响的记录数</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; text-align: left;"><span lang="EN-US"> </span></p>
<p class="MsoListParagraph" style=""><span style="font-family: Wingdings;" lang="EN-US"><span style="">n<span style='font: 7.0pt "Times New Roman";'> <strong> </strong></span></span></span><span style=""><strong>出错</strong></span></p>
<p class="MsoListParagraph" style="margin-left: 78.15pt; text-indent: 0cm; text-align: left;"><span lang="EN-US">{error,Err} = fetch(PoolId, &lt;&lt;"update
<span style=""> </span>* from user"&gt;&gt;).</span></p>
<p class="MsoListParagraph" style="margin-left: 78.15pt; text-indent: 0cm; text-align: left;"><span lang="EN-US">Reason<span style="">    </span>= mysql:get_result_reason(MysqlRes).%%</span><span style="">出错原因</span></p>
</div><br/>注意mysql:start_link的第八个参数encoding,设置为utf8,以支持中文

相关推荐

Global site tag (gtag.js) - Google Analytics