ThinkPHP(三)

4008 ワード

ThinkPHPのデバッグ方法
開発の過程でデバッグ方法とデバッグ手段をよく使うことは、開発に大きな助けになる.
//        
'SHOW_PAGE_TRACE'=>true;
//trace  
trace('name',C('name'));
//     
dump($_SERVER);
//       (  )       ,        ,      ,     
G('run');
$str = '';
for ($i=1;$i<1000;$i++) {
     $str += $i;
}
echo G('run','end');

ThinkPHPデータベース操作
  • 接続データベース
  • /*       */
    'DB_TYPE'    =>  '',     //      
    'DB_HOST'   =>  '',     //      
    'DB_NAME'   =>  '',     //     
    'DB_USER'   =>  '',     //    
    'DB_PWD'     =>  '',     //   
    'DB_PORT'    =>  '3306',     //   
    'DB_PREFIX'  =>  'shop_',    //       
    

    に注意
    なお、ThinkPHPのデータベース接続は不活性なので、インスタンス化したときにデータベースに接続するのではなく、実際のデータ操作があるときにデータベースに接続する(さらに、システムが初めてモデルをインスタンス化したときに、関連するモデルクラスに対応するデータテーブルのフィールド情報を自動的に接続する)ことに注意してください.
  • 実体化基礎モデル
  • //    
    $user = new Model('user') OR $user = M('user');
    $data = $user->select();
    dump($data);
    
  • ユーザカスタムモデル
  • をインスタンス化する
    Modelフォルダの下に新しいUserモデルファイルを作成します.対応するデータベースにuserテーブルが必要です.テーブルのないモデルクラスをインスタンス化するにはextends Modelを使用しないでください.

    コントローラ呼び出し
    $user = new UserModel() OR $user = D('user');
    $data = $user->select();
    dump($data);
    

    Dメソッドを使用して、対応するモデルファイルがない場合、自動的にMメソッドに変換して実行します.
  • 共通モデル
  • をインスタンス化
    Modelフォルダの下にCommonモデルファイルを新規作成する

    各モデルにstrという方法が必要であれば、カスタムモデルファイルを直接この共通モデルを継承することができるので、この共通モデルの中には共通の方法が置かれています.OOPの基本思想の一つの体現で、使い方はD方法を使うことができます.
    $model = D('user');
    echo $model->str('hello');
    
  • 実体化空モデル
  • 特に複雑なCURD操作が必要な場合は、空のモデルでオリジナルSQLを書いて実行できます.
    $model = M();
    //    SQL  ,query        ,select
    $data = $model->query('select * from shop_user');
    //execute        ,insert,update 
    $data = $model->execute("insert into shop_user(name,age) values('www',18)");
    

    実際の作業では、元のSQL文を書くことは推奨されません.元のSQL文を書くとSQL注入のリスクがあるからです.
    CURD操作の追加
    addデータを追加
    //   int   ID
    echo M('user')->add($data);
    

    addAll複数のデータを追加
    echo M('user')->addAll($data);
    

    最後に実行したsql文を印刷するデバッグ方法
    M()->getLastSql();
    'SHOW_PAGE_TRACE'=>true,
    

    CURD操作の照会
    クエリー・テーブル内のすべてのデータ
    M('user')->select();
    

    where条件
    //           
    M('user')->where('id=1')->select();
    //    ,       
    $where['id'] = 1;
    M('user')->where($where)->select();
    //  sql   
    $where['_logic'] = 'or';
    //     
    $where['id'] = array('lt',3);
    $where['id'] = array('between','1,5');
    $where['id'] = array('in','1,5');
    $where['name'] = array('like','%w%');
    M('user')->where($where)->select();
    

    統計的使用法
    //    
    M('user')->count();
    //     ,      
    M('user')->max('age');
    //     ,      
    M('user')->min('age');
    //    ,      
    M('user')->avg('age');
    //  ,      
    M('user')->sum('age');
    

    CURD操作の更新
    save更新データ
    $where['id'] = 21;
    $update['name'] = '  ';
    $data = M('user')->where($where)->save($update);
    

    CURD操作の削除
    deleteデータの削除
    $where['id'] = 21;
    $data = M('user')->where($where)->delete();