ThinkPHP学习笔记(八)CURD的的相关操作以及表的关联查询等
本节的使用基于六、七的基于数据库的链接和conf的配置
主要是action中的curd的方法和update
action
<?phpclass CurdAction extends Action{ //创建和增删改成 //create() //创建会完成自动映射、自动填充、自动验证 //如果开启了字段缓存,会去匹配字段,如果不存在,会获取字段,返回一个数组 //create方法中有自动令牌,向当前的session会话中放入Md5加密的字符串会将字符串插入点表单的</from>之前,session和form中有 //令牌可以在conf中配置;可以在页面设置不显示令牌但是一样使用令牌<!--{__NOTOKEN__}--> //如果页面中有多个表单,只有一个表单需要令牌,可以在此表单中显示指定:<!--{__TOKEN__}--> //create默认获取数据的方法是post方法 public function index() { $this->display(); } public function add(){ $user=new Model('User'); // //不使用create方法验证令牌// if (!$user->autoCheckToken($_POST)) {// //令牌验证失败的代码;// $this->error($user->getError());// }else{// //获取其中信息$user// $user->username;// $user->username=md5($user->password);// // dump($user);// if ($user->add()) {// $this->success('添加成功');// }else{// $this->error($user->getError());// }// } //返回的数组信息如果用自动填充,返回值和信息更多 if ($vo=$user->create()) {// //这个方法是执行成功的一个方法,会给出页面的各种信息// dump($vo);// //successs模板可以在ThinkPHP的example中找到,放入到default中的public目录中// $this->success('create成功'); //获取其中信息$user $user->username=md5($user->password);// dump($user); if ($user->add()) { $this->success('添加成功'); }else{ $this->error($user->getError()); } }else { //如果执行失败,代码不会继续向后执行// dump($vo);// dump($user); //error模板可以在ThinkPHP的example中找到,放入到default中的public目录中 $this->error($user->getError()); } } public function curd(){ $user=M('user'); //find()查询单条记录 //select()查询所有信息 //findAll()就是select的同名方法// $find=$user->find();// $select=$user->select();// $findAll=$user->findAll();// dump($find);// dump($select);// dump($findAll); //一:查询涉及到一个连贯操作问题;手册:5.3.10 //1.根据条件进行查询where中可以通过字符串、数组、对象来传值 //函数有:data、where、limit、order、field、group、having(sql一致,二次过滤结果集)、page(多用pageView来进行分页) //data方法可以被替代用于save当中传值、add、delete的方法时// $select=$user->select(array('where'=>'id>1','limit'=>'2,8','order'=>'id desc'));// $select=$user->where('id=3')->find();// $select=$user->where('id>1')->limit('2')->order('id desc')->field('id,username')->select(); //2.$user->table()用来操作多张表;也可以通过field来限制查询列// $select=$user->table(array('tb_user'=>'user','tb_user_message'=>'m'))->where('user.id=m.id')->select();// $select=$user->table('tb_user user,tb_user_message m')->where('user.id=m.id')->select(); //3.$user->join()// $select=$user->join('user on user.id=user_message.id')->select(); //4.$user->distinct()// $select=$user->distinct(true)->select(); //5.关联模型:$user->relation() //6.锁:$user->lock() //基本上可以不用考虑锁机制(mysql5.0的myisam引擎支持表级锁,innodB引擎支持行级锁)// $select=$user->lock(true)->select(); //二:getField()// $select=$user->where('id>1')->getField('id,username'); //更新操作:返回值是受影响行数 //1.save()中可以直接传入想要更改的数据,格式:字段信息数组 //可以不写where,但是数组中必须模拟的where条件// $data['id']='4';// $data['username']='aaaa';// $data['password']='aaaa';// $select=$user->where('id=4')->save($data);// $select=$user->where('id=4')->data($data); //1.setField()参数:字段,值// $select=$user->where('id=4')->setField(array('username','password'),array('google','google')); //2.setInc():对数字字段进行的增加更新操作。参数:字段、where、增加的整型(默认加一)// $select=$user->setInc('price','id=2',1); //3.setDec()对数字字段进行的减少更新操作。参数:字段、where、减少的整型(默认减一)// $select=$user->setDec('price','id=2',1); //add操作:返回插入的id// $data['username']='aaaa';// $data['password']='aaaa';// $select=$user->add($data);// $select=$user->data($data)->add(); //delete操作:受影响的行数// $select=$user->delete(6);// $select=$user->where('id>4')->delete();// $select=$user->where('id>1')->limit('1')->order('id desc')->delete(); dump($select); //实现更新指定id的数据// $this->display(); } public function update(){ $user=new Model('User'); //返回的数组信息如果用自动填充,返回值和信息更多 if ($vo=$user->create()) { $user->username=md5($user->password); if ($user->save()) { $this->success('添加成功'); }else{ $this->error($user->getError()); } }else { $this->error($user->getError()); } }}?>
html
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>CURD</title>

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
