晚上实验了一下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.
原标签已从 2012-01-11 存档快照 恢复。本文按原站快照恢复排版,并接回已核实的本地图片。查看恢复说明