搜索
查看: 3275|回复: 2

自己写的一个mysql数据库操作类

[复制链接]

4

主题

12

帖子

95

积分

一级会员

Rank: 2

积分
95
QQ
发表于 2016-6-30 01:48:20 | 显示全部楼层 |阅读模式
我是个新手,平常用mysql数据库多点,就从我写的php数据库操作类代码移植过来,
代码写的很粗糙,好多aardio 的代码还没搞懂,就拿出来献丑了,希望各位朋友多多指导,感激不尽。





  1. /*
  2. 一个容易使用的mysql类
  3. by:iiwork  qq 165633505

  4. */
  5. namespace mysql;

  6. class aclient  {
  7.         ctor( tParam  ){
  8.                 import mysql.client;
  9.                 var db = mysql.client(tParam);
  10.                 if(!db) return ;
  11.                 this.db = db;
  12.         };

  13.         query = function(sql){
  14.                 return  db.query(sql);                
  15.         }
  16.        
  17.         exec = function(sql){
  18.                 return  db.exec(sql);                
  19.         }
  20.                
  21.         affectedRows =function(sql){
  22.                 var r,err = db.exec(sql);
  23.                 if(err) return  r,err;
  24.                 var n = db.getAffectedRows();
  25.                 r.free();
  26.                 return  db.getAffectedRows(sql);
  27.         }
  28.        
  29.         numRows =function(sql){
  30.                 var r,err = db.query(sql);
  31.                 if(err) return  r,err;
  32.                 var n = r.numRows();
  33.                 r.free();
  34.                 return r.numRows();
  35.         }
  36.        
  37.         getOne = function(sql){
  38.                 var r,err = db.query(sql);
  39.                 if(err) return  r,err;
  40.                 var arr =r.fetchObject();
  41.                 r.free();
  42.                 return  arr;
  43.         }
  44.                
  45.         getOneValue = function(sql){
  46.                 var r,err = db.query(sql);
  47.                 if(err) return  r,err;
  48.                 var arr = r.fetchRow();
  49.                 r.free();
  50.                 return  arr[1];
  51.         }
  52.        
  53.         getValues =function(sql){
  54.                 var r,err = db.query(sql);
  55.                 if(err) return  r,err;
  56.                 var arr ={};
  57.                 while(1){
  58.                         var d = r.fetchRow();
  59.                         if(!d) break ;               
  60.                         table.push(arr,d[1]);
  61.                 }
  62.                 r.free();
  63.                 return  arr;
  64.         }
  65.        
  66.         getAll = function(sql){
  67.                 var r,err = db.query(sql);
  68.                 if(err) return  r,err;
  69.                 var arr ={};
  70.                 while(1){
  71.                         var d = r.fetchObject();
  72.                         if(!d) break ;               
  73.                         table.push(arr,d);
  74.                 }
  75.                 r.free();
  76.                 return  arr;
  77.         }
  78.        
  79.         getAllValues = function(sql){
  80.                 var r,err = db.query(sql);
  81.                 if(err) return  r,err;
  82.                 var arr ={};
  83.                 while(1){
  84.                         var d = r.fetchRow();
  85.                         if(!d) break ;               
  86.                         table.push(arr,d);
  87.                 }
  88.                 r.free();
  89.                 return  arr;
  90.         }
  91.        
  92.         getColumns=function(table){
  93.                 var r,err=db.listFields(table);
  94.                 if(err) return r,err;
  95.                 var arr={};
  96.                 while(1){
  97.                         var f = r.fetchObject();
  98.                         table.push(arr,r['Field']);
  99.                 }
  100.                 r.free();
  101.                 return arr;
  102.                
  103.         }
  104.        
  105.         getRandRows = function(sql,num){
  106.                 var arr,err = this.getAll(sql);
  107.                 if(!arr) return arr,err;
  108.                 if(!num) num=1;
  109.                 if(num==1) {
  110.                         var k = math.random(1, #arr);
  111.                         return  arr[k];
  112.                 }elseif(num>=#arr){
  113.                         return  arr;
  114.                 }else{
  115.                         math.randomize();
  116.                         var ks ={};
  117.                         while(1){
  118.                                 if(#k>=num) break ;
  119.                                 var k = math.random(1, #arr);
  120.                                 if(table.find(ks,k)) continue ;
  121.                                 table.push(ks,k);
  122.                         }
  123.                         var rarr={}
  124.                         for k,v in ks{
  125.                                 table.push(rarr,arr[v]);                       
  126.                        
  127.                         }
  128.                         return  rarr;       
  129.                 }
  130.         }
  131.        
  132.         insertFromTable = function(tbl,table){
  133.                 var tbFields = this.getColumns(tbl);
  134.                 var sqlk,sqlv ='','';
  135.                 for k,v in table{
  136.                         if(!table.find(tbFields,k)) continue ;
  137.                         sqlk +=',`'++k++'`';
  138.                         sqlv += ",'"++v++"'";
  139.                 }
  140.                 if(!#sqlk) return null,"no key matchs";
  141.                 sqlk  = string.sub(sqlk,2);
  142.                 sqlv = string.sub(sqlv,2);
  143.                 var r,err = db.query("INSERT INTO `"++tbl++"` ("++sqlk++") VALUES ("++sqlv++")");
  144.                 if(!r) return  r,err;
  145.                 var lastInsertId = db.lastInsertId();
  146.                 r.free();
  147.                 if(lastInsertId) return lastInsertId ;
  148.                 return true;       
  149.         }
  150.        
  151.         updateFromTable = function(tbl,key,table){
  152.                 if(table[key]==null) return false,"key is not in table";
  153.                 var tbFields = this.getColumns(tbl);
  154.                 if(!table.find(tbFields,key)) return false,"key is not a column";
  155.                 var sql ='';
  156.                 for k,v in table{
  157.                         if(!table.find(tbFields,k)) continue ;
  158.                         sql +=",`"++k++"`='"++v++"'";                       
  159.                 }
  160.                 if(!#sql) return false,"no key matchs";
  161.                 sql  =string.sub(sql,2);
  162.                 var r,err = this.exec("UPDATE "++tbl++" SET "++sql++" WHERE `"++key++"`='"++table[key]++"'");
  163.                 return r,err;               
  164.         }
  165.        
  166.         inserID =function(){
  167.                 return  db.lastInsertId();
  168.         }
  169.        
  170.         fetchObject = function(r){
  171.                 return r.fetchObject();                
  172.         }
  173.        
  174.         fetchRow = function(r){
  175.                 return r.fetchRow();
  176.                
  177.         }
  178.        
  179. }

复制代码
回复

使用道具 举报

4

主题

12

帖子

95

积分

一级会员

Rank: 2

积分
95
QQ
 楼主| 发表于 2016-6-30 08:40:07 | 显示全部楼层

有几个错误的地方,汗…… 无法编辑

有几个错误的地方,汗…… 无法编辑
回复

使用道具 举报

0

主题

9

帖子

54

积分

一级会员

Rank: 2

积分
54
发表于 2016-7-5 22:19:33 | 显示全部楼层

[quote][size=2][url=forum.php?mod=redirect&goto=findpost&pid=71719&ptid=13301][c

iiwork 发表于 2016-6-30 08:40
有几个错误的地方,汗…… 无法编辑

可以跟帖再发
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-17 01:00 , Processed in 0.078125 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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