ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP の CURD メソッドとクエリ メソッドのリスト_PHP チュートリアル
いわゆるカード。つまり、データベース操作の 4 つの基本操作 (CURD)、C:create (作成)、U:update (更新)、R:read (読み取り)、D:detele (削除) です。
ThinkPHP では、メソッドに必ずしもこれらの名前が付いているわけではありません。一般的なメソッドは次のとおりです: select、find、findAll、save、create など:
D読み:
select->() はデータ セットをクエリします。これは findAll->() と同じです。例:
$User->where(‘status=1’)->order(‘create_time’)->limit(10)->select();
注: 連続操作では、select メソッドを最後に配置する必要があることを除いて、他の連続操作のメソッドを呼び出す順序は連続していません。たとえば、次のコードは上記と同等です。
$User->order(‘create_time’)->where(‘status=1’)->limit(10)->select();
次のように書かれます:
$User->select(array('order'=>'create_time', 'where'=>'status=1', 'limit'=>'10'));
find->() メソッドは、上記の 2 つのメソッドと似ています。違いは、返されるデータが 1 つだけであることです。 getField->() と併用して、レコードのフィールド値を取得できます。
Select は findall と同じ効果があり、2 次元配列を返します。
など
配列(1) {
[0] => 配列(8)
{ ["rank_id"] => string(3) “151″
["ランク名"] => string(7) "テスト 9"
["rank_memo"] => string(3) “123″
["uid"] => 文字列(5) “59471”
["rank_kw"] => string(6) "重要"
["rank_uptime"] => string(10) “1280202914″
["isverify"] => string(1) “0″
["ishot"] => string(1) “0″
}
}
find の効果は次のようになり、1 次元配列が返されます。
配列(8) {
["rank_id"] => string(3) “151″
["ランク名"] => string(7) "テスト 9"
["rank_memo"] => string(3) “123″
["uid"] => 文字列(5) “59471”
["rank_kw"] => string(6) "重要"
["rank_uptime"] => string(10) 「
」
1280202914″ ["isverify"] => string(1) “0″
["ishot"] => string(1) “0″
}
Where メソッド: 条件の定義をクエリまたは更新するために使用されます
Tableメソッド:操作対象のデータテーブル名を定義します
$Model->Table('think_user user')->where('status>1')->select();
fieldメソッド: クエリするフィールドを定義します
$Model->field('id,nickname as name')->select();
$Model->field(array('id','nickname'=>'name'))->select();
field メソッドを使用してフィールドを指定しない場合、デフォルトは field(‘*’) を使用することと同じになります。
更新者: U、作成者: C:
data、add、save メソッド: データ オブジェクトを割り当て、追加、保存します。例:
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$Model->data($data)->add();//新しく追加されました。挿入と同等で、一貫した方法で記述されています
$Model->add($data); //新しい、挿入と同等の非一貫性書き込みメソッド
$Model->data($data)->where(‘id=3’)->save(); //変更、update
と同等
save メソッドでは、データが変更されていない場合、デフォルトの戻り操作は FALSE であることに注意してください。ただし、この保存の実行は問題ありません。これには注意が必要です。
create->() は POST フィールドから $data のようなデータを自動的に形成します
$User=D("ユーザー");
$User->create(); // フォームから送信されたデータを使用してデフォルトで作成します
$User->add() //追加
主キーが自動インクリメント型で、データが正常に挿入された場合、Add メソッドの戻り値は、最後に入力された主キーの値であり、直接取得できます。
データメソッドを使用して作成されたデータオブジェクトは自動的に検証およびフィルタリングされません。ご自身で処理してください。しかし、実践している人は戒律を追加します
保存操作中に、データ テーブルに存在しないフィールドや不正なデータ型 (オブジェクト、配列、その他の非スカラー データなど) は自動的に保存されます。 自動フィルタリングを使用すると、データ テーブル以外のフィールドへの書き込みによって発生する SQL エラーを心配する必要がなくなります。私たちがよく知っているコマンド検証、自動検証、自動完了 (関連する使用法については後ほど説明します) の機能は、実際には
有効にするには、create メソッドを渡す必要があります。 Create メソッドによって作成されたデータ オブジェクトはメモリに保存され、実際にはデータベースに書き込まれません
、add または save メソッドを使用するだけです。データオブジェクトを作成するだけの場合は、追加の関数を実行する必要はありません
その場合は、data メソッドを使用してデータ オブジェクトを簡単に作成できます。
setInc メソッドと setDec メソッド。統計フィールド (通常は数値タイプ) の更新の場合:
$Model->setInc(‘score’,’id=5’,3) // ユーザーのポイントに 3 を加算します
$Model->setInc(‘score’,’id=5’) // ユーザーのポイントに 1 を追加します
$Model->setDec(‘score’,’id=5’,5); // ユーザーのポイントが 5 減ります
$Model->setDec(‘score’,’id=5’) // ユーザーのポイントが 1 減ります
Dが削除されました:
delete->() データを削除します
$User->where('status=0')->order('create_time')->limit('5')->delete();
モデルのその他の一般的なメソッド:
注文方法: 結果の並べ替え 例:
order('id desc')
並べ替え方法は、複数のフィールドでの並べ替えをサポートしています
order('ステータス説明,ID asc')
order メソッドのパラメーターは文字列と配列をサポートしています。配列の使用方法は次のとおりです。
order(array('status'=>'desc','id'))
リミット(’1,10’)
limit('10') を使用すると、limit('0,10') と同等になります
Page は現在のページ番号を表し、listRows は各ページに表示されるレコードの数を表します。たとえば、各ページに 10 件のレコードが表示されている場合、ページ 2 のデータを取得します。
ページ(’2,10’)
listRow が書き込まれていない場合は、limit('length') の値が読み取られます。たとえば、各ページに 25 件のレコードが表示されている場合、3 ページ目のデータが取得されます。
制限(25)->ページ(3);
制限が設定されていない場合、デフォルトでは 1 ページあたり 20 レコードが表示されます。
Join メソッド: Query Join のサポート。Join メソッドのパラメーターは文字列と配列をサポートしており、join メソッドはコヒーレントな操作で複数回呼び出すことができる唯一のメソッドです。例:
$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();
Distinct メソッド: Disinct サポートをクエリします。データのクエリ時に独自のフィルタリングを実行します
$Model->Distinct(true)->select();
関係メソッド: 関連クエリのサポート
$Model->Relation(true)->select();
条件付きクエリ
$map->put('name','php') //name='php'
('id',array('in',array(1,2,4)));
('id',array('10','3','or')); //id>=10 または
thinkphp の複数テーブルのクエリ ステートメント
1. table()関数
thinkphp は table() 関数を提供します。具体的な使用法については、次のステートメントを参照してください。
$list=$Demo->table('think_blog blog,think_type type')->where('blog.typeid=type.id')->field('blog.id as id,blog.title,blog .content,type.typename as type')->order('blog.id desc' )->limit(5)->select();
2. join()関数
コードを見てください:
$Demo = M('アーティスト');
$Demo->join('RIGHT JOIN think_work ON think_artist.id = think_work.artist_id' );
//ここでは INNER JOIN または LEFT JOIN を使用できます。テーブル名のプレフィックスに注意してください。
echo $Demo->getLastSql(); // SQL ステートメントを出力して確認します
追加、削除、確認のための最も簡単なコードを添付します
[php]
// データをクエリする
パブリック関数インデックス(){
$Form = M("フォーム");
$list = $Form->limit(5)->order('id desc')->findAll();
$this->assign('リスト',$リスト);
$this->display();
}
//データを書き込む
パブリック関数 insert() {
$Form = D("フォーム");
If($vo = $Form->create()) {
$list=$Form->add();
If($list!==false){
$this->success('データは正常に保存されました!');
}その他{
$this->error('データ書き込みエラー!');
}
}その他{
$this->error($Form->getError());
}
}
//データを更新します
パブリック関数 update() {
$Form = D("フォーム");
If($vo = $Form->create()) {
$list=$Form->save();
If($list!==false){
$this->success('データは正常に更新されました!');
}その他{
$this->error("データが更新されていません!");
}
}その他{
$this->error($Form->getError());
}
}
// データを削除します
パブリック関数 delete() {
If(!emptyempty($_POST['id'])) {
$Form= M("フォーム");
$ 結果 = $ フォーム-& gt;
If(false !== $result) {
$this->ajaxReturn($_POST['id'],'削除に成功しました!',1);
}その他{
$this->error('エラーを削除!');
}
}その他{
$this->error('削除されたアイテムは存在しません!');
}
}
http://www.bkjia.com/PHPjc/477994.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/477994.html
技術記事
いわゆるカード。つまり、データベース操作の 4 つの基本操作 (CURD)、C:create (作成)、U:update (更新)、R:read (読み取り)、D:detele (削除) です。 ThinkPHP では、これらは必ずしも必要ではありません...