이 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

phpsession 실패 이유에는 구성 오류, 쿠키 문제 및 세션 만료가 포함됩니다. 1. 구성 오류 : 올바른 세션을 확인하고 설정합니다. 2. 쿠키 문제 : 쿠키가 올바르게 설정되어 있는지 확인하십시오. 3. 세션 만료 : 세션 시간을 연장하기 위해 세션을 조정합니다 .GC_MAXLIFETIME 값을 조정하십시오.

PHP에서 세션 문제를 디버그하는 방법 : 1. 세션이 올바르게 시작되었는지 확인하십시오. 2. 세션 ID의 전달을 확인하십시오. 3. 세션 데이터의 저장 및 읽기를 확인하십시오. 4. 서버 구성을 확인하십시오. 세션 ID 및 데이터를 출력, 세션 파일 컨텐츠보기 등을 통해 세션 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

SESSION.GC_MAXLIFETIME 및 SESSION.COOKIE_LIFETIME을 설정하여 PHP에서 세션 수명을 구성 할 수 있습니다. 1) SESSION.GC_MAXLIFETIME 서버 측 세션 데이터의 생존 시간을 제어합니다. 2) 세션 .Cookie_Lifetime 클라이언트 쿠키의 수명주기를 제어합니다. 0으로 설정하면 브라우저가 닫히면 쿠키가 만료됩니다.

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음
