• 贴心猫(imcat) 插入数据 --- [Top]
  • $data['kid']=basKeyid::kidTemp();
    $data['kno']='1';
    $data['atime']=time(); 
    $data['content']='123abc@q.com'; 
    $db->table('xtest_keyid')->data($data)->insert(); 
  • 贴心猫(imcat) 更新数据 --- [Top]
  • $data['kno']='2';
    unset($data['kid']);
    $db->table('xtest_keyid')->data($data)->where("kid='2015-cr-f9pt2r7'")->update(); 
  • 贴心猫(imcat) 数据库查询 --- [Top]
  • 1、查询一条数据:

    $info=$db->table('表名')->where($condition)->find(); 
    成功返回一维数组,否则返回false 
    
    限制字段 
    $info=$db->table('表名')->field('id,title')->where($condition)->find(); 
    
    排序 
    $info=$db->table('表名')->field('id,title')->where($condition)->order('id desc')->find(); 
    注意:order('id desc')逆序order('id asc')升序 
    
    缓存 
    $info=$db->table('表名')->cache(10)->where($condition)->find(); 
    cache($time) $time>0,数据缓存时间,$time=0,不缓存,$time=-1永久缓存 

    2、查询多条数据

    $list=$db->table('表名')->where($condition)->select(); 
    
    成功返回二维数组,否则返回false 
    
    限制字段 
    $list=$db->table('表名')->field('id,title')->where($condition)->select(); 
    
    排序 
    $list=$db->table('表名')->field('id,title')->where($condition)->order('id desc')->select(); 
    
    限制条数 
    $list=$db->table('表名')->field('id,title')->where($condition)->order('id desc')->limit(10)->select(); 
    
    缓存 
    $list=$db->table('表名')->cache($time)->field('id,title')->where($condition)->order('id desc')->limit(10)->select(); 
    cache($time) $time>0,数据缓存时间,$time=0,不缓存,$time=-1永久缓存 

    3、查询数据条数

    $count=$db->table('表名')->where($condition)->count(); 
    成功返回一个整数,否则返回false 
    $count=$db->table('表名')->cache($time)->where($condition)->count(); 
    
    • 注意:field(),limit(),order(),cache(),table(),where()没有先后顺序之分
      $condition条件可为字符串或数组,如果是数组,数组下标表示数据库字段名 多个元素用and连接,

    • 复杂一点的sql,可以写成原生的sql查询条件
      $config['DB_CACHE_ON']=true;等于true时,数据库缓存才生效

  • 贴心猫(imcat) 删除数据 --- [Top]
  • $condition为查询条件,可为数组或字符串,$condition['id']=1; 
    删除成功返回影响的数据行数,否则返回false 
    注意,当$condition为空时,不会删除数据。防止不小心把整个表的数据给删除了 
    $db->table('xtest_keyid')->where("kid='2015-cr-f9pt2r7'")->delete(); 
  • 贴心猫(imcat) 常用代码 --- [Top]
  • 如果$sql为查询条件,则返回二维数组,且可以设置缓存$db->cache(缓存时间)->query($sql); 
    如果sql不是查询条件语句,缓存设置无效,返回的数据跟mysql_query($sql)一样 
    $db->query($sql); 
        --- 系统常用代码 --- 
        $db->table($tabid)->data(basReq::in($fm))->insert();
        $db->table($tabid)->where("kid='$id'")->delete();
        $db->table($tabid)->data(array('enable'=>'1'))->where("kid='$id'")->update();  
        $list = $db->table('base_model')->field('kid,title')->limit(3)->select(); if($list)foreach($list as $r){}}
        $fm = $db->table($tabid)->where("model='$mod' AND kid='$kid'")->find();
        $count = $db->table('base_model')->where("pid='groups'")->count();  
        $sql = "SELECT kid,title FROM base_model_ys WHERE pid='groups' LIMIT 3";
        $list = $db->arr($sql);
        print_r($db->fields('xtest_keyid_ys'));
        print_r($db->tables());
  • 贴心猫(imcat) 其他操作 --- [Top]
    • ● 1,查看生成的sql语句,echo $db->sql;或者echo $db->getSql();
        -> 数据库操作有问题时,用来查看生成的sql语句 是否正确
    • ● 2,使用数据库配置的前缀/后缀,$db->pre/$db->ext;
        -> 主要用于写原生的sql语句用到
    • ● 3 特殊数据库前缀
        -> $db->table('表名',$nofix=false)->
        -> $nofix===2,=> $full 加上前后缀 的字符串
        -> $nofix===1,=> 不加前后缀 返回$db;
        -> $nofix===0,=> 加上前后缀 返回$db;
    • ● 4 操作数据库基类,具体方法查看/imcat/core/glib/glbDBObj.php文件
  • 贴心猫(imcat) 注意事项 --- [Top]
    • ● 数据库操作:$db->操作里面不要含有$db->操作,(少数情况下会出错)
    如:
    $db->table('users_uacc')->data($acc+basSql::logData())->insert(); //
    -=>改为两句:
    $dataex = basSql::logData(); 
    $db->table('users_uacc')->data($acc+$dataex)->insert(); 
    • ● 系统设计缺陷
        -> 原则上,避免使用mysql关键字 作为数据表的字段;本系统使用了【show/key/char】等字段:
        -> 【show】用于控制资料显示如否,【key(wex_menu/base_paras中使用)】, 【char(inittypes/types*中使用)】;
        -> 这算是一些小缺陷,容易引起错误;出问题时,请按如下解决:
        -> $list = $db->table('users_inmem')->field('uid,grade,show')->where($usql)->select();
        -> 子句修改为:->field('uid,grade,`show`')即可;
    • ● 常用sql
      UPDATE users_adminer_ys set uid=concat('2010-4q-',uname)
      UPDATE `users_person_ys` b INNER JOIN users_uacc_ys a ON a.uname=b.uname SET b.uid=a.uid;
      UPDATE `dede_addonarticle` SET body=REPLACE (body,'</td>',");
    

提示:`/dev.php`入口为贴心猫中文文档;欢迎进入`问答`交流使用经验!

QQ群:607070548; Copyright © 2011-2018 txjia.com All rights reserved.

Run:0.000/39.919(ms); 0(sql)/1.962(MB); dev:c_demo/dev2nd_basic; Upd:2024-04-19 16:03:03