いわゆるカード。つまり、データベース操作の 4 つの基本操作 (CURD)、C:create (作成)、U:update (更新)、R:read (読み取り)、D:detele (削除) です。
ThinkPHP では、これらの名前のメソッドは必ずしも使用されるわけではありません。一般的なメソッドは次のとおりです: select、find、findAll、save、create など:
D 読み方:
select->() query data set 、同じfindAll->() として。例:
$User->where('status=1')->order('create_time')->limit(10)->select();
注: 連続操作では、 select メソッドは必須です。最後のものを除いて、他の連続する操作のメソッド呼び出しの順序は連続していません。たとえば、次のコードは上記と同等です:
$User->order('create_time')->where ('status=1' )->limit(10)->select();
find->() メソッドは上記 2 つのメソッドと似ています。違いは、返されるデータが 1 つだけであることです。 getField->() と併用して、レコードのフィールド値を取得できます。
select は findall と同じ効果があり、2 次元配列を返します。
array(1) {
[0] => array(8)
{ ["rank_id"] => string(3) “151″
["rank_name"] => など( 7) “テスト 9″
["rank_memo"] => 文字列(3) “123″
["uid”] => 文字列(5) “59471″
["rank_kw"] => ; 文字列(6) "重要"
["ランクアップタイム"] => 文字列(10) "1280202914"
["isverify"] => 文字列(1) "0"
["ishot"] = > ; string(1) “0″
}
}
find には次のような効果があり、1 次元配列を返します。 ) "151″
["rank_name"] => string(7) "テスト 9″
["rank_memo"] => string(3) "123″
["uid"] => string(5) “59471″
["rank_kw"] => string(6) “重要”
["rank_uptime"] => string(10) “
1280202914″ ["isverify"] => string(1) “0 ″
["ishot"] => string(1) “0″
}
Whereメソッド:条件の定義をクエリまたは更新するために使用されます
Tableメソッド:Name
$で操作されるデータテーブルを定義しますModel->Table('think_user user')->where('status>1')->select();フィールド メソッド: クエリ対象のフィールドを定義します フィールド メソッドのパラメーターは文字列と配列、例:
$Model->field('id,nickname as name')->select();
field メソッドを使用してフィールドを指定しない場合、デフォルトは field('*') を使用することと同じになります。
U 更新、C 作成:
data、add、save メソッド: データ オブジェクトの割り当て、追加、保存。例:
$data['email'] = 'ThinkPHP@gmail.com'; ; //新規追加、挿入と同等、一貫した方法で記述
$Model->add($data) //新規追加、挿入と同等、非連続的な方法で記述する$Model->data ($data)->where ('id=3')->save(); //変更、update と同等
save メソッドでは、データが変更されていない場合、デフォルトの戻り操作は FALSE です。ただし、この保存の実行は問題ありません。これには注意が必要です。
create->() は、POST フィールドから $data の形式でデータを自動的に形成します
$User->create(); // フォームを通じて送信されたデータデフォルトでは Create
$User->add(); // setInc メソッドと setDec メソッドを追加します。統計フィールド (通常は数値型) の更新の場合:$Model->setInc('score','id=5',3); // ユーザーのポイントが 3 増加します
$Model->setInc( ' core','id=5'); // ユーザーのポイントが 1 増加します
$Model->setDec('score','id=5',5) // ユーザーのポイントが 5 減少します
D 削除:
delete->() delete data
$User->where( 'status=0' )->order('create_time')->limit('5')->delete();
Model のその他の一般的なメソッド:
order メソッド: 結果の並べ替え 例:
order('id desc' )
order('status desc,id asc')
order メソッドのパラメータは文字列と配列をサポートします:order(array) ('status'=>' desc','id'))
limitメソッド:結果limit
limit('1,10')
limit('10')を使用した場合、limit('と同等0,10分)
page メソッド: ページングのクエリ Page メソッドの使用法は、limit メソッドと似ています。形式は次のとおりです:
Page('page[,listRows]')
Page は現在のページ数を表し、listRows はページ数を表します。各ページに表示されるレコード。例えば、各ページに10件のレコードが表示されている場合、2ページ目のデータを取得します:
Page('2,10')
listRow 書かない場合はlimit('length')の値が読み込まれますたとえば、すべてのページに 25 レコードが表示される場合、ページ 3 のデータを取得します。
limit(25)->page(3);
制限が設定されていない場合、デフォルトでは 20 レコードが表示されます。 1ページあたり。
Join メソッド: Query Join のサポート。Join メソッドのパラメーターは文字列と配列をサポートしており、join メソッドはコヒーレントな操作で複数回呼び出すことができる唯一のメソッドです。例:
$Model->join(' work ON Artist.id = work.artist_id')->join('card ON Artist.card_id = Card.id')->select();
LEFT はデフォルトの JOIN メソッドで使用されます。他の JOIN メソッドを使用する必要がある場合は、
$Model->join('RIGHT JOIN work ON Artist.id = work.artist_id')->select();
Distinct メソッド: Distinct サポートをクエリします。データのクエリ時に独自のフィルタリングを実行します
$Model->Distinct(true)->select();
Relation メソッド: 関連クエリのサポート
$Model->Relation(true)->select();
条件付きクエリ
$map->put('name','php'); //name='php'
('name',array('like','think')); '…'
('id',array('in',array(1,2,4)));
('id',array('10','3','or')) ; //id>=10 または <=3
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();
echo $Demo->getLastSql(); // SQL を出力します。ステートメントを作成して表示してみましょう
2. Join() 関数
コードを見てみましょう:
$Demo = M('artist');
$Demo->join('RIGHT JOIN think_work ON think_artist.id = think_work.artist_id' );
/ /ここでは INNER JOIN または LEFT JOIN を使用できます。テーブル名のプレフィックスに注意してください。
echo $Demo->getLastSql() // SQL ステートメントを出力して確認します