thinkphp的数据库操作常见问题

2022-03-05 14:40:28 浏览数 (1)

1、thinkphp在查询数据库的时候:

代码语言:javascript复制
$infoLists=M('user')->field('id,amount')->where('openid='.$openid))->find();
代码语言:javascript复制
$infoLists=M('user')->field('id,amount')->where(array('openid'=>$openid))->find();

上面两个语句执行的结果是一样的,但是再特殊情况下二者会存在很大的差距

上面 1、SQL语句有时报错$openid查询找不到数据,所以我一般用二这种方法,就不会出现这种问题了,

这只针对于字段比价长的。比如订单号order_sn、用户openid;

2、php插入数据array写法:

代码语言:javascript复制
data(array('uid'=>$uid,'token'=>$token,'expire_t'=>$expire_t,'update_t'=>time()))    

3、多表联合查询

代码语言:javascript复制
$packageInfo = $m
		           ->alias("a")
		           ->join("LEFT JOIN ".C('DB_PREFIX')."vedio_type b on a.pid=b.v_id")
		           ->field('a.*,b.title')
		           ->order($sortSql)
		           ->where($where)
		           ->select();

4、对数据库中一条数据的某个字段进行数学运算操作

代码语言:javascript复制
M('member')->where('uid='.$first_user_info['uid'])->setInc('money',$jl_price);

setDec:值减;

setInc:值增;

5、thinkphp后端查询数据库出来会把字段大写全部转为小写的解决方案: 在配置文件中新增一个配置:

代码语言:javascript复制
'DB_PARAMS' => array(PDO::ATTR_CASE => PDO::CASE_NATURAL),   

0 人点赞