이 글에서는 thinkPHP의 데이터베이스 추가, 삭제, 수정, 쿼리 등의 조작 방법을 주로 소개하고 있으며, thinkPHP에서 흔히 사용되는 데이터베이스 조작 기능과 관련 사용법을 예시로 분석하여 도움이 필요한 친구들이 참고할 수 있도록 해드립니다. 이 글에서는 thinkPHP 데이터베이스의 추가, 삭제, 수정, 쿼리 작업 방법을 예시로 설명합니다. 참조를 위해 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
thinkphp는 데이터베이스의 추가, 삭제, 수정 및 쿼리를 캡슐화하여 사용하기 더 편리하게 해주지만 반드시 유연하지는 않습니다.
Encapsulation에 사용할 수 있습니다. sql을 작성해야 sql을 실행할 수 있습니다.
1. 원본$Model = new Model(); // 实例化一个model对象 没有对应任何数据表 $insert_sql = "INSERT INTO sh_wxuser_collection (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');"; $Model - >query($insert_sql);2. 테이블에 대해 인스턴스화되었으며 여기서 테이블의 원래 이름은 sh_wxuser_collection입니다. sh는 접두사입니다.
$model = M('wxuser_collection'); //自动省去sh $insert_sql = "INSERT INTO __TABLE__ (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');"; $model - >query($insert_sql);种 다른 방법으로 _를 대문자로 쓰면 자동으로 _
$model = M('WxuserCollection'); //自动省去sh $insert_sql = "INSERT INTO __TABLE__ (user_id,store_id,good_id,addtime) VALUES('".$user_id."','".$store_id."','".$good_id."','".$addtime."');"; $model - >query($insert_sql);3으로 수정됩니다.
$model = M('WxuserCollection'); $data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime); $model - >data($data) - >add();
는 정말 편리하지만 별개입니다. 편의상 원본 SQL, 원본 SQL이 가장 흥미롭다는 점을 잊지 마세요.
5.find()$model = M('WxuserCollection');
$data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime);
$model - >data($data) - >where('id=3') - >save();
find는 데이터 조각을 가져오고, find(1)은 ID가 1인 데이터를 가져오고, find(2)는 ID가 2인 데이터를 가져옵니다. 마지막은 where 조건을 사용하여 첫 번째 데이터 조각을 가져오는 것입니다.
5.select()$model = M('WxuserCollection');
$res1 = $model - >find(1);
$res2 = $model - >find(2);
$res3 = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >find();
모든 데이터를 가져옵니다. 여기서 장점은 SQL 문의 순서를 고려할 필요가 없고 원하는 대로 함수를 호출할 수 있다는 것입니다.
6.delete()$model = M('WxuserCollection');
$res = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >field('id,good_id as good') - >select();
조건에 따른 삭제 작업
7.field()
$model = M('WxuserCollection'); $res = $model - >where('id=1') - >delete(); // 成功返回1 失败返回0두 가지 방법: 및 배열, 세 번째 하나는 처리 ID를 제외한 모든 필드를 가져오는 것을 의미합니다.
8.order()
$model = M('WxuserCollection');
$res = $model - >field('id,good_id as good') - >select();
$res = $model - >field(array('id', 'good_id' = >'good')) - >select();
$res = $model - >field('id', true) - >select();
두 가지 방법: 문자열과 배열, 기본 asc.
9.join()$model = M('WxuserCollection');
$res = $model - >order('id desc') - >select();
$res = $model - >order('id asc') - >select();
$res = $model - >order(array('id' = >'desc')) - >select();
$res = $model - >order(array('id')) - >select();
다른 JOIN 방법을 사용해야 하는 경우 두 번째 방법으로 변경할 수 있습니다.
조인 방법의 매개변수를 사용하면 됩니다. 배열의 경우 조인 방법은 한 번만 사용할 수 있으며 문자열 방법과 혼합할 수 없습니다.
10.setInc()$Model->join(' work ON artist.id = work.artist_id')->join('card ON artist.card_id = card.id')->select(); $Model->join('RIGHT JOIN work ON artist.id = work.artist_id')->select(); $Model->join(array(' work ON artist.id = work.artist_id','card ON artist.card_id = card.id'))->select();11.getField()
필드 값 가져오기
$User = M("User"); // 实例化User对象 $User->where('id=5')->setInc('score',3); // 用户的积分加3 $User->where('id=5')->setInc('score'); // 用户的积分加1 $User->where('id=5')->setDec('score',5); // 用户的积分减5 $User->where('id=5')->setDec('score'); // 用户的积分减1
반환된 닉네임은 문자열 결과입니다. 즉, 조건을 만족하는 필드가 여러 개 있어도 하나의 결과만 반환됩니다.
특정 필드 열 가져오기요구 사항을 충족하는 필드 열(여러 결과)을 반환하려면 다음을 사용할 수 있습니다.
$User = M("User"); // 实例化User对象 // 获取ID为3的用户的昵称 $nickname = $User->where('id=3')->getField('nickname');
두 번째 매개 변수는 true로 전달되며, 반환된 별명은 조건을 충족하는 모든 별명 목록을 포함하는 배열입니다.
반환된 결과 수를 제한해야 하는 경우 다음을 사용할 수 있습니다. $User = M("User"); // 实例化User对象
// 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('nickname',true);
2개의 필드 목록을 가져옵니다.
$nickname = $User->where('status=1')->getField('nickname',8);
getField 메소드가 여러 필드 이름을 전달하는 경우, 연관은 첫 번째 필드의 값으로 인덱싱된 기본 배열에 의해 반환됩니다(따라서 첫 번째 필드는 가능한 한 중복되지 않은 것으로 선택해야 합니다).
여러 필드 목록 가져오기
$User = M("User"); // 实例化User对象 // 获取status为1的用户的昵称列表 $nickname = $User->where('status=1')->getField('id,nickname');
2개 이상의 필드 이름이 전달되면 2차원 배열이 반환됩니다. (select 메서드의 반환 값과 유사하지만 차이점은 인덱스는 2차원 배열 키 이름은 첫 번째 필드의 값)
종합 사용 사례
$result = $User->where('status=1')->getField('id,account,nickname');
여기서는 두 개의 테이블을 합쳤기 때문에 테이블 메소드를 사용하여 인덱스를 재정의합니다. 테이블 이름, 해당 조건 및 모든 매개변수가 앞에 붙어야 합니다. a. 또는 b.
필드 필드는 문자열이거나 배열입니다.
$where = array('a.store_id' => $this->store_id, 'a.user_id' => $this->user_id);
$collects = $this->collectModel->table("sh_wxuser_collection a")->field(array('b.name','b.price','b.oprice','b.logoimg','a.goods_id'))->limit($start, $offset)->order('a.addtime DESC')->where($where)->join(' sh_goods b ON a.goods_id = b.id')->select();// 获取当前页的记录
echo M()->getLastSql(); // 调试sql语句用
$count = $this->collectModel->table("sh_wxuser_collection a")->where($where)->count(); // 获取总的记录数
이런 글을 예전에 썼는데 큰 문제가 됐습니다.
프레임워크를 사용하면 SQL을 유연하게 작성할 수 없습니다. 그러나 SQL에 대한 깊은 이해가 있으면 프레임워크를 유연하게 사용하는 데에도 도움이 됩니다.
SQL 문 디버깅 방법.
field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误
매우 편리합니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 학습에 도움이 되었으면 좋겠습니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
PHP는 Excel 파일을 업로드하여 MySQL 데이터베이스로 데이터를 가져옵니다.thinkphp3.2.3 버전의 데이터베이스 추가, 삭제, 수정 및 구현 코드 확인
thinkPHP5 방법으로 콘텐츠 추가 데이터베이스위 내용은 thinkPHP 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!