搜索
查看: 3404|回复: 4

请教论坛各高手,急

[复制链接]
发表于 2009-12-19 12:30:47 | 显示全部楼层 |阅读模式 来自 中国–广东–深圳
本帖最后由 tooya 于 2009-12-19 12:38 编辑

示例代码:

数据库表:name  类型Varchar
              player_kill 类型int


  1. new sql_kill[33][12]
  2. new names[33][1][33]

  3. public plugin_init()
  4.           set_task(1.0,"sqlinit")

  5. public sqlinit(id)
  6. {
  7.            dbi_connect(.........)
  8. }

  9. public client_putinserver(id)
  10.           set_task(2.0,"get_sql_info",id)

  11. public get_sql_info(id)
  12. {
  13.           get_user_name(id,names[id][0],31)
  14.           result = dbi_query(dbc,"SELECT * FROM killcount WHERE name = '%s'",names[id][0])
  15.           if(result == RESULT_NONE) //new user?
  16.           {
  17.                     result = dbi_query(dbc,"INSERT INTO killcount VALUES ('%s','0')",names[id][0])
  18.                     dbi_free_result(result)
  19.           }
  20. }

  21. public death_msg()
  22. {
  23.            new attacker = read_data(1)
  24.            new sql_kill[12]
  25.            result = dbi_query(dbc,"SELECT * FROM killcount WHERE name = '%s'",names[attacker][0])
  26.            dbi_result(result,"player_kill",sql_kill,11)
  27.            new sq_kll = str_to_num(sql_kill) + 1
  28.            result = dbi_query(dbc,"UPDATE killcount SET player_kill = '%d' WHERE name = '%s'",sq_kll,names[attacker][0])
  29.            dbi_free_result(result)
  30. }
复制代码
就是每杀一个人都会更新一下数据库 杀人+1
单机测试没有任何问题,放到服务器上就有问题了,大部分人能正确统计,但是有小部分人的数据很异常。
以上仅仅是一个示例。

如图:


zombie_infect列是僵尸感染人类数,居然能达到上亿、几千万?
而有些人统计很正常,我是不是用错方法了还是?
百思不得其解啊,还是请高手出山帮忙,我个人就怀疑是dbi_result字符串的问题
因为是小部分人出现这些问题的,所以很难找到什么原因所在,主要是自己测试的时候它却没任何问题..

高手们大显身手帮帮忙吧!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
发表于 2009-12-19 20:10:55 | 显示全部楼层 来自 中国–广东–中山
楼上的QQ多少?我的20576526
回复

使用道具 举报

 楼主| 发表于 2009-12-21 02:07:24 | 显示全部楼层 来自 中国–广东–广州
弄明白了
要用new abc = dbi_result(index,"XXX")
回复

使用道具 举报

发表于 2009-12-24 00:44:53 | 显示全部楼层 来自 中国–江苏–苏州
直接用
UPDATE killcount SET player_kill=player_kill+1 WHERE name = '%s'
就可以了
回复

使用道具 举报

发表于 2009-12-24 09:53:38 | 显示全部楼层 来自 中国–广东–广州
楼主为什么不试试用<sqlx>呢?
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表