ThinkPHP(三)
4008 ワード
ThinkPHPのデバッグ方法
開発の過程でデバッグ方法とデバッグ手段をよく使うことは、開発に大きな助けになる.
ThinkPHPデータベース操作接続データベース
に注意
なお、ThinkPHPのデータベース接続は不活性なので、インスタンス化したときにデータベースに接続するのではなく、実際のデータ操作があるときにデータベースに接続する(さらに、システムが初めてモデルをインスタンス化したときに、関連するモデルクラスに対応するデータテーブルのフィールド情報を自動的に接続する)ことに注意してください.実体化基礎モデル ユーザカスタムモデル をインスタンス化する
Modelフォルダの下に新しいUserモデルファイルを作成します.対応するデータベースにuserテーブルが必要です.テーブルのないモデルクラスをインスタンス化するにはextends Modelを使用しないでください.
コントローラ呼び出し
Dメソッドを使用して、対応するモデルファイルがない場合、自動的にMメソッドに変換して実行します.共通モデル をインスタンス化
Modelフォルダの下にCommonモデルファイルを新規作成する
各モデルにstrという方法が必要であれば、カスタムモデルファイルを直接この共通モデルを継承することができるので、この共通モデルの中には共通の方法が置かれています.OOPの基本思想の一つの体現で、使い方はD方法を使うことができます.実体化空モデル 特に複雑なCURD操作が必要な場合は、空のモデルでオリジナルSQLを書いて実行できます.
実際の作業では、元のSQL文を書くことは推奨されません.元のSQL文を書くとSQL注入のリスクがあるからです.
CURD操作の追加
addデータを追加
addAll複数のデータを追加
最後に実行したsql文を印刷するデバッグ方法
CURD操作の照会
クエリー・テーブル内のすべてのデータ
where条件
統計的使用法
CURD操作の更新
save更新データ
CURD操作の削除
deleteデータの削除
開発の過程でデバッグ方法とデバッグ手段をよく使うことは、開発に大きな助けになる.
//
'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');
$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();