Erlang的MySQL操作-01

分享ErlangMySQL by 达达 at 2010-08-11

晚上实验了一下Erlang的MySQL驱动的使用,用法如下:
1. 到erlang-mysql-driver官方主页:点击跳转,的底部下载最新的代码,我发现官方网站代码比googlecode的源码管理器里的新。
2. 下载代码到本地,分别编译提供的那几个.erl文件。
3. 把编译得到的几个beam文件拷贝到测试代码同目录下(可以让erl加载到的路径就可以)。

需要注意,官方放在googlecode的测试代码已经旧了,fetch接口实际上需要一个二进制list,所以是[<<"select * from table">>]格式,而不是<<"select * from table">>格式。

以下是增、删、改、查操作的测试代码:

-module(mysql_test).
-export([start/0]).

start () ->

    % 连接数据库
    mysql:start_link(conn1, "localhost", "root", "ybybyb", "webgame"),


    % 插入数据
    Result1 = mysql:fetch(
        conn1,
        [<<
        "INSERT INTO"
        "        `player`"
        "    SET"
        "        `username`         = 'test',"
        "        `joined_datetime`  = now(),"
        "        `logined_datetime` = now();"
        >>]
    ),

    io:format("Result1: ~p~n", [Result1]),


    % 查询数据
    Result2 = mysql:fetch(conn1, [<<"SELECT * FROM player">>]),

    io:format("Result2: ~p~n", [Result2]),


    % 更新数据
    Result3 = mysql:fetch(
        conn1,
        [<<
        "UPDATE"
        "    `player`"
        "SET"
        "    `username` = 'test_player'"
        "where"
        "    `username` = 'test'"
        >>]
    ),

    io:format("Result3: ~p~n", [Result3]),


    % 查询数据
    Result4 = mysql:fetch(conn1, [<<"SELECT * FROM player">>]),

    io:format("Result4: ~p~n", [Result4]),


    % 删除数据
    Result5 = mysql:fetch(
        conn1,
        [<<
        "DELETE FROM `player` WHERE `username` = 'test_player'"
        >>]
    ),

    io:format("Result5: ~p~n", [Result5]),


    % 查询数据
    Result6 = mysql:fetch(conn1, [<<"SELECT * FROM player">>]),

    io:format("Result4: ~p~n", [Result6]),


    ok.