ホームページ >バックエンド開発 >PHPチュートリアル >thinkPHP データベースでの追加、削除、変更、クエリ操作
この記事では主に thinkPHP データベースの追加、削除、変更、クエリの操作方法を紹介し、一般的に使用されるデータベース操作機能と thinkPHP の関連使用スキルを例の形式で詳細に分析します。以下
この記事の例では、thinkPHP データベースの追加、削除、変更、確認の操作方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです。
thinkphp はデータベースの追加、削除、変更、クエリをカプセル化し、使いやすくしていますが、必ずしも柔軟性があるわけではありません。
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);もう 1 つの書き方、_ を大文字で書くと、自動的に __
$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. カプセル化された add ステートメント
##$model = M('WxuserCollection'); $data = array('user_id' = >$user_id, 'store_id' = >$store_id, 'good_id' = >$good_id, 'addtime' = >$addtime); $model - >data($data) - >add();
##4. カプセル化された edit ステートメント
$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();確かに非常に便利ですが、便利さは別として、元の SQL、元の SQL が最も興味深いことを忘れないでください。
5.find()
$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();find はデータの一部を取得し、find(1) は ID を取得します1 データの場合、find(2) は ID 2 のデータを取得します。最後の方法は、where という条件で最初のデータを取得することです。
5.select()
$model = M('WxuserCollection'); $res = $model - >where('good_id=1105 AND store_id = 1 AND user_id = 20') - >field('id,good_id as good') - >select();すべてのデータを取得します。ここでの利点は、SQL ステートメントの順序を考慮する必要がなく、必要に応じて関数を呼び出すことができることです。
6.delete()
$model = M('WxuserCollection'); $res = $model - >where('id=1') - >delete(); // 成功返回1 失败返回0条件に基づいた削除操作
7.field()
$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();文字列と配列には 2 つの方法があり、3 つ目は取得を意味します。 id を除くすべてのフィールドを処理します。
8.order()
$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();2 つのメソッドは文字列と配列で、デフォルトは asc です。
9.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(); $Model->join(array(' work ON artist.id = work.artist_id','card ON artist.card_id = card.id'))->select();LEFT JOIN メソッドを使用する必要がある場合は、デフォルトで使用されます。他の JOIN メソッドの場合、2 番目のメソッドに変更できます。結合メソッドのパラメータが配列の場合、結合メソッドは 1 回のみ使用でき、文字列メソッドと混合することはできません。
10.setInc()
$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
11.getField()
フィールド値の取得
$User = M("User"); // 实例化User对象 // 获取ID为3的用户的昵称 $nickname = $User->where('id=3')->getField('nickname');返されるニックネームは文字列の結果です。つまり、条件を満たすフィールドが複数ある場合でも、返される結果は 1 つだけです。 特定のフィールド列を取得する
要件を満たすフィールド列 (複数の結果) を返したい場合は、次を使用できます。
$User = M("User"); // 实例化User对象 // 获取status为1的用户的昵称列表 $nickname = $User->where('status=1')->getField('nickname',true);
#2 番目のパラメーターは true で渡され、返されるニックネームは、条件を満たすすべてのニックネームのリストを含む配列です。
返される結果の数を制限する必要がある場合は、次を使用できます:
$nickname = $User->where('status=1')->getField('nickname',8);
Get a list of results 2 フィールド
$User = M("User"); // 实例化User对象
// 获取status为1的用户的昵称列表
$nickname = $User->where('status=1')->getField('id,nickname');
$result = $User->where('status=1')->getField('id,account,nickname');
$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(); // 获取总的记录数
field('b.name', 'b.price', 'b.oprice', 'b.logoimg', 'a.goods_id') // 错误これは以前にも書きましたが、これは大きな問題です。 フレームワークを使用すると、柔軟に SQL を書くことができません。ただし、SQL を深く理解していれば、フレームワークを柔軟に使用することもできます。 SQL ステートメントをデバッグするためのメソッド。
echo M()->getLastSql();とても便利です。 上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。 関連する推奨事項:
PHP は Excel ファイルをアップロードし、データを MySQL データベースにインポートします
thinkphp3.2.3 バージョンのデータベースの追加、削除、変更 実装コードを確認してください
thinkPHP5 はデータベースにコンテンツを追加するメソッドを実装しています
以上がthinkPHP データベースでの追加、削除、変更、クエリ操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。