canphp的数据库操作
时间:2011-03-15 来源:辛拓世纪
一、canphp数据库类初始化
//数据库配置$config['DB_TYPE']='mysql';//数据库类型$config['DB_HOST']='localhost';//数据库主机$config['DB_USER']='root';//数据库用户名$config['DB_PWD']='123456';//数据库密码$config['DB_PORT']='3306';//数据库端口,mysql默认是3306,一般不需要修改$config['DB_NAME']='cp';//数据库名$config['DB_CHARSET']='utf8';//数据库编码$config['DB_PREFIX']='cp_';//数据库前缀$config['DB_PCONNECT']=false;//true表示使用永久连接,false表示不适用永久连接,一般不使用永久连接
$config['DB_CACHE_ON']=false;//是否开启数据库缓存,true开启,false不开启$config['DB_CACHE_PATH']='./data/db_cache/';//数据库查询内容缓存目录,地址相对于入口文件$config['DB_CACHE_TIME']=0;//缓存时间,0不缓存,-1永久缓存$config['DB_CACHE_CHECK']=false;//是否对缓存进行校验//数据库配置结require(CP_PATH.'core/cpModel.class.php');//加载数据库模型类$model=new cpModel($config);//实例化模型类
二、数据查询1、查询一条数据: $info=$model->table('表名')->where($condition)->find(); 成功返回一维数组,否则返回false 限制字段 $info=$model->table('表名')->field('id,title')->where($condition)->find(); 排序 $info=$model->table('表名')->field('id,title')->where($condition)->order('id desc')->find(); 注意:order('id desc')逆序order('id asc')升序 缓存 $info=$model->table('表名')->cache(10)->where($condition)->find(); cache($time) $time>0,数据缓存时间,$time=0,不缓存,$time=-1永久缓存 2、查询多条数据 $list=$model->table('表名')->where($condition)->select(); 成功返回二维数组,否则返回false 限制字段 $list=$model->table('表名')->field('id,title')->where($condition)->select(); 排序 $list=$model->table('表名')->field('id,title')->where($condition)->order('id desc')->select(); 限制条数 $list=$model->table('表名')->field('id,title')->where($condition)->order('id desc')->limit(10)->select(); 缓存 $list=$model->table('表名')->cache($time)->field('id,title')->where($condition)->order('id desc')->limit(10)->select(); cache($time) $time>0,数据缓存时间,$time=0,不缓存,$time=-1永久缓存 3、查询数据条数 $count=$model->table('表名')->where($condition)->count(); 成功返回一个整数,否则返回false $count=$model->table('表名')->cache($time)->where($condition)->count();
注意:field(),limit(),order(),cache(),table(),where()没有先后顺序之分$condition条件可为字符串或数组,如果是数组,数组下标表示数据库字段名 多个元素用and连接复杂一点的,可以写成原生的sql查询条件
三、插入数据 $model->table('表名')->data($data)->insert();
$data为数据数组 如 $data['name']='admin'; $data['email']='[email protected]'; 插入成功返回插入数据的id,否则返回false
四、更新数据 $model->table('表名')->data($data)->where($condition)->update(); $data为数据数组 如 $data['name']='admin'; $data['email']='[email protected]'; $condition为查询条件,可为数组或字符串,$condition['id']=1; 更新成功返回影响的数据行数,否则返回false
五、删除数据 $model->table('表名')->where($condition)->delete(); $condition为查询条件,可为数组或字符串,$condition['id']=1; 删除成功返回影响的数据行数,否则返回false
六、原生sql语句执行 $model->query($sql); 如果$sql为查询条件,则返回二维数组,且可以设置缓存$model->cache->query($sql); 如果sql不是查询条件语句,缓存设置无效,返回的数据跟mysql_query($sql)一样