ThinkPHP 之 curd 操作
ThinkPHP提供了灵活和方便的数据操作方法,不仅实现了对数据库操作的四大基本操作(CURD):创建、读取、更新和删除的实现,还内置了很多实用的数据操作方法,提供了ActiveRecords模式的最佳体验。
新建记录
PHP 代码
1. $User->find(2);
2. $User->delete(); // 删除查找到的记录
3. $User->delete('5,6'); // 删除主键为5、6的数据
4. $User->deleteAll(); // 删除查询出来的所有数据
PHP 代码
1. // 实例化一个User模型对象
2.
3. $User = new UserModel();
4. // 然后给数据对象赋值
5. $User->name = 'ThinkPHP';
6. $User->email = 'ThinkPHP@gmail.com';
7. // 然后就可以保存新建的User对象了
8. $User->add();
9. // 如果需要锁实例化模型对象的时候传入数据,可以使用
10. $data['name'] = 'ThinkPHP';
11. $data['email'] = 'ThinkPHP@gmail.com';
12. $User = new UserModel($data);
13. $User->add();
14. // 或者直接在add方法传入要新建的数据
15. $data['name'] = 'ThinkPHP';
16. $data['email'] = 'ThinkPHP@gmail.com';
17. $User = new UserModel();
18. $User->add($data);
19.
20.
一般情况下,应用中的数据对象不太可能通过手动赋值的方式写入,而是有个数据对象的创建过程。ThinkPHP提供了一个create方法来创建数据对象,然后进行其它的新增或者编辑操作。
PHP 代码
1. $User = D("User");
2. $User->create(); // 创建User数据对象,默认通过表单提交的数据进行创建
3. $User->add(); // 新增表单提交的数据
Create方法支持从其它方式创建数据对象,例如,从其它的数据对象,或者数组等
PHP 代码
1. $data['name'] = 'ThinkPHP';
2. $data['email'] = 'ThinkPHP@gmail.com';
3. $User->create($data);
4. // 从User数据对象创建新的Member数据对象
5. $Member = D("Member");
6. $Member->create($User);
支持新增多条记录
PHP 代码
1. $User = new UserModel();
2. $data[0]['name'] = 'ThinkPHP';
3. $data[0]['email'] = 'ThinkPHP@gmail.com';
4. $data[1]['name'] = '流年';
5. $data[1]['email'] = 'liu21st@gmail.com';
6. $User->addAll($data);
在MySql数据库下面,会自动使用一条SQL语句实现多数据的插入。
查询记录
读取数据库的记录我觉得是数据库操作中的最有意思的一件事情了,写过文本数据库的人都知道,保存和删除数据不难(无非是规范和效率问题),难在可以通过各种方式来查找需要的数据。ThinkPHP通过各种努力,让数据库的查询操作变得轻而易举,也让ThinkPHP变得富有内涵。
ThinkPHP有一个非常明确的约定,就是单个数据查询和多个数据查询的方法是分开的,或者你会认为有时候自己也不知道要查询的数据是单个还是多个,但是有一点是明确的,你需要的是返回一个数据还是希望返回的是一个数据集。因为对两种类型的返回数据的操作方式是截然不同的,无论何种方式的返回,我们都可以直接在模型对象里面操作,当然也一样可以作为数据传递给你需要的变量。
先举个最简单的例子,假如我们要查询主键为8的某个用户记录,我们可以使用下面的一些方法:
PHP 代码
1. $User->find(8);
这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:
PHP 代码
1. $name = $User->name;
2. $email = $User->email;
遍历查询到的数据对象属性
PHP 代码
1. foreach ($User as $key=>$val){
2. echo($key.':'.$val);
3. }
// 或者进行相关的数据更改和保存操作
也可以用变量保存下来以便随时使用。
PHP 代码
1. $user = $User->find(8);
对于上面的查询条件,我们还可以使用getById来完成相同的查询
PHP 代码
1. $User->getById(8);
需要注意的是,对于find方法来说,即使查询结果有多条记录,也只会返回符合条件的第一条记录,如果要返回符合要求的所有记录,请使用findAll方法。
PHP 代码
1. // 查询主键为1、3、8的记录集
2. $User->findAll('1,3,8');
3. // 遍历数据列表
4. foreach ($User as $vo){
5. dump($vo->name);
6. }
更多的查询操作请参考后面章节的内容。
更新记录
了解了查询记录后,更新操作就显得非常简单了。
// 还可以使用下面的方式更新
PHP 代码
1. $User->find(1); // 查找主键为1的数据
2. $User->name = 'TOPThink'; // 修改数据对象
3. $User->save(); // 保存当前数据对象
4. $User->score = '(score+1)'; // 对用户的积分加1
5. $User->save();
如果不是使用数据对象的方式来保存,可以传入要保存的数据和条件
PHP 代码
1. $data['id'] = 1;
2. $data['name'] = 'TopThink';
3. $User->save($data);
除了save方法外,你还可以使用setField方法来更新特定字段的值,例如:
PHP 代码
1. $User->setField('name','TopThink','id=1');
同样可以支持对字段的操作
PHP 代码
1. $User->setField('score','(score+1)','id=1');
2. // 或者改成下面的
3. $User->setInc('score','id=1');
删除记录
如果你的主键是自动增长类型,不需要传入主键的值就可以新建数据,并且如果插入数据成功的话,Add方法的返回值就是最新插入的主键值,可以直接获取。
echo $user->getLastSql();

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

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

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

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











残念ながら、WeChat は広く使用されているソーシャル ソフトウェアであり、何らかの理由で特定の連絡先を誤って削除してしまうことがよくあります。ユーザーがこの問題を解決できるように、この記事では、削除された連絡先を簡単な方法で取得する方法を紹介します。 1. WeChat の連絡先削除メカニズムを理解します。これにより、削除された連絡先を取得できるようになります。WeChat の連絡先削除メカニズムでは、連絡先がアドレス帳から削除されますが、完全には削除されません。 2. WeChat の組み込みの「連絡先帳復元」機能を使用します。WeChat には、この機能を通じて以前に削除した連絡先をすばやく復元できる「連絡先帳復元」機能が用意されています。 3. WeChat 設定ページに入り、右下隅をクリックし、WeChat アプリケーション「Me」を開き、右上隅にある設定アイコンをクリックして設定ページに入ります。

0.この記事は何をするのですか?私たちは、多用途かつ高速な最先端の生成単眼深度推定モデルである DepthFM を提案します。従来の深度推定タスクに加えて、DepthFM は深度修復などの下流タスクでも最先端の機能を実証します。 DepthFM は効率的で、いくつかの推論ステップ内で深度マップを合成できます。この作品について一緒に読みましょう〜 1. 論文情報タイトル: DepthFM: FastMonocularDepthEstimationwithFlowMatching 著者: MingGui、JohannesS.Fischer、UlrichPrestel、PingchuanMa、Dmytr

Google が推進する JAX のパフォーマンスは、最近のベンチマーク テストで Pytorch や TensorFlow のパフォーマンスを上回り、7 つの指標で 1 位にランクされました。また、テストは最高の JAX パフォーマンスを備えた TPU では行われませんでした。ただし、開発者の間では、依然として Tensorflow よりも Pytorch の方が人気があります。しかし、将来的には、おそらくより大規模なモデルが JAX プラットフォームに基づいてトレーニングされ、実行されるようになるでしょう。モデル 最近、Keras チームは、ネイティブ PyTorch 実装を使用して 3 つのバックエンド (TensorFlow、JAX、PyTorch) をベンチマークし、TensorFlow を使用して Keras2 をベンチマークしました。まず、主流のセットを選択します

世界は狂ったように大きなモデルを構築していますが、インターネット上のデータだけではまったく不十分です。このトレーニング モデルは「ハンガー ゲーム」のようであり、世界中の AI 研究者は、データを貪欲に食べる人たちにどのように餌を与えるかを心配しています。この問題は、マルチモーダル タスクで特に顕著です。何もできなかった当時、中国人民大学学部のスタートアップチームは、独自の新しいモデルを使用して、中国で初めて「モデル生成データフィード自体」を実現しました。さらに、これは理解側と生成側の 2 つの側面からのアプローチであり、両方の側で高品質のマルチモーダルな新しいデータを生成し、モデル自体にデータのフィードバックを提供できます。モデルとは何ですか? Awaker 1.0 は、中関村フォーラムに登場したばかりの大型マルチモーダル モデルです。チームは誰ですか?ソフォンエンジン。人民大学ヒルハウス人工知能大学院の博士課程学生、ガオ・イージャオ氏によって設立されました。

テクノロジーの発展に伴い、モバイルゲームは人々の生活に欠かせないものになりました。かわいいドラゴンエッグの画像と面白い孵化過程で多くのプレイヤーの注目を集めており、その中でも注目を集めているゲームの一つがモバイル版ドラゴンエッグです。プレイヤーがゲーム内で自分のドラゴンをより適切に育成し成長させることができるように、この記事ではモバイル版でドラゴンの卵を孵化させる方法を紹介します。 1. 適切な種類のドラゴン エッグを選択する プレイヤーは、ゲーム内で提供されるさまざまな種類のドラゴン エッグの属性と能力に基づいて、自分に適したドラゴン エッグの種類を慎重に選択する必要があります。 2. 孵化機のレベルをアップグレードします。プレイヤーはタスクを完了し、小道具を収集することで孵化機のレベルを向上させる必要があります。孵化機のレベルは孵化速度と孵化成功率を決定します。 3. プレイヤーはゲームに参加する必要がある孵化に必要なリソースを収集します。

ThinkPHP プロジェクトを実行するには、Composer をインストールし、Composer を使用してプロジェクトを作成し、プロジェクト ディレクトリに入り、php bin/consoleserve を実行し、http://localhost:8000 にアクセスしてようこそページを表示する必要があります。

iPhone のモバイル データ接続に遅延や遅い問題が発生していませんか?通常、携帯電話の携帯インターネットの強度は、地域、携帯ネットワークの種類、ローミングの種類などのいくつかの要因によって異なります。より高速で信頼性の高いセルラー インターネット接続を実現するためにできることがいくつかあります。解決策 1 – iPhone を強制的に再起動する 場合によっては、デバイスを強制的に再起動すると、携帯電話接続を含む多くの機能がリセットされるだけです。ステップ 1 – 音量を上げるキーを 1 回押して放します。次に、音量小キーを押して、もう一度放します。ステップ 2 – プロセスの次の部分は、右側のボタンを押し続けることです。 iPhone の再起動が完了するまで待ちます。セルラーデータを有効にし、ネットワーク速度を確認します。もう一度確認してください 修正 2 – データ モードを変更する 5G はより優れたネットワーク速度を提供しますが、信号が弱い場合はより適切に機能します

最近、軍事界は、米軍戦闘機が AI を使用して完全自動空戦を完了できるようになったというニュースに圧倒されました。そう、つい最近、米軍のAI戦闘機が初めて公開され、その謎が明らかになりました。この戦闘機の正式名称は可変安定性飛行シミュレーター試験機(VISTA)で、アメリカ空軍長官が自ら飛行させ、一対一の空戦をシミュレートした。 5 月 2 日、フランク ケンダル米国空軍長官は X-62AVISTA でエドワーズ空軍基地を離陸しました。1 時間の飛行中、すべての飛行動作が AI によって自律的に完了されたことに注目してください。ケンダル氏は「過去数十年にわたり、私たちは自律型空対空戦闘の無限の可能性について考えてきたが、それは常に手の届かないものだと思われてきた」と語った。しかし今では、
