ホームページ バックエンド開発 PHPチュートリアル ThinkPHP学习札记(八)CURD的的相关操作以及表的关联查询等

ThinkPHP学习札记(八)CURD的的相关操作以及表的关联查询等

Jun 13, 2016 am 11:12 AM
gt quot select user where

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>
ログイン後にコピー


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Huawei GT3 ProとGT4の違いは何ですか? Huawei GT3 ProとGT4の違いは何ですか? Dec 29, 2023 pm 02:27 PM

多くのユーザーはスマートウォッチを選ぶときにファーウェイブランドを選択しますが、その中でもファーウェイ GT3pro と GT4 は非常に人気のある選択肢であり、多くのユーザーはファーウェイ GT3pro と GT4 の違いに興味を持っています。 Huawei GT3pro と GT4 の違いは何ですか? 1. 外観 GT4: 46mm と 41mm、材質はガラスミラー + ステンレススチールボディ + 高解像度ファイバーバックシェルです。 GT3pro: 46.6mm および 42.9mm、材質はサファイアガラス + チタンボディ/セラミックボディ + セラミックバックシェルです。 2. 健全な GT4: 最新の Huawei Truseen5.5+ アルゴリズムを使用すると、結果はより正確になります。 GT3pro: ECG 心電図と血管と安全性を追加

修正: Windows 11 で Snipping ツールが機能しない 修正: Windows 11 で Snipping ツールが機能しない Aug 24, 2023 am 09:48 AM

Windows 11 で Snipping Tool が機能しない理由 問題の根本原因を理解すると、適切な解決策を見つけるのに役立ちます。 Snipping Tool が正しく動作しない主な理由は次のとおりです。 フォーカス アシスタントがオンになっている: これにより、Snipping Tool が開かなくなります。破損したアプリケーション: 起動時にスニッピング ツールがクラッシュする場合は、破損している可能性があります。古いグラフィック ドライバー: 互換性のないドライバーは、スニッピング ツールに干渉する可能性があります。他のアプリケーションからの干渉: 実行中の他のアプリケーションが Snipping Tool と競合する可能性があります。証明書の有効期限が切れています: アップグレード プロセス中のエラーにより、この問題が発生する可能性があります。これらの簡単な解決策は、ほとんどのユーザーに適しており、特別な技術知識は必要ありません。 1. Windows および Microsoft Store アプリを更新する

Select Channels Goの非同期処理方法 golangを使った並行プログラミング Select Channels Goの非同期処理方法 golangを使った並行プログラミング Sep 28, 2023 pm 05:27 PM

golang を使用した SelectChannelsGo 同時プログラミングの非同期処理方法 はじめに: 同時プログラミングは、アプリケーションのパフォーマンスと応答性を効果的に向上させることができる、現代のソフトウェア開発における重要な領域です。 Go 言語では、Channel と Select ステートメントを使用して同時プログラミングを簡単かつ効率的に実装できます。この記事では、SelectChannelsGo 同時プログラミングの非同期処理メソッドに golang を使用する方法を紹介し、具体的な方法を提供します。

jqueryでselect要素を非表示にする方法 jqueryでselect要素を非表示にする方法 Aug 15, 2023 pm 01:56 PM

jquery で select 要素を非表示にする方法: 1. hide() メソッド。jQuery ライブラリを HTML ページに導入します。さまざまなセレクターを使用して select 要素を非表示にできます。ID セレクターは、selectId を選択した select 要素の ID に置き換えます。実際に使用する; 2. css() メソッド、ID セレクターを使用して非表示にする必要がある select 要素を選択し、css() メソッドを使用して表示属性を none に設定し、selectId を select 要素の ID に置き換えます。

iPhoneでApp Storeに接続できないエラーを修正する方法 iPhoneでApp Storeに接続できないエラーを修正する方法 Jul 29, 2023 am 08:22 AM

パート 1: 最初のトラブルシューティング手順 Apple のシステムステータスを確認する: 複雑な解決策を掘り下げる前に、基本から始めましょう。問題はデバイスにあるのではなく、Apple のサーバーがダウンしている可能性があります。 Apple のシステム ステータス ページにアクセスして、AppStore が適切に動作しているかどうかを確認してください。問題があれば、Apple が修正してくれるのを待つしかありません。インターネット接続を確認します。「AppStore に接続できません」問題は接続不良が原因である場合があるため、安定したインターネット接続があることを確認してください。 Wi-Fi とモバイル データを切り替えるか、ネットワーク設定をリセットしてみてください ([一般] > [リセット] > [ネットワーク設定のリセット] > [設定])。 iOS バージョンを更新します。

jQueryで選択要素の変更イベントバインディングを実装する方法 jQueryで選択要素の変更イベントバインディングを実装する方法 Feb 23, 2024 pm 01:12 PM

jQuery は、DOM 操作、イベント処理、アニメーション効果などを簡素化するために使用できる人気のある JavaScript ライブラリです。 Web 開発では、選択した要素のイベント バインディングを変更する必要がある状況によく遭遇します。この記事では、jQuery を使用して選択要素変更イベントをバインドする方法を紹介し、具体的なコード例を示します。まず、ラベルを使用してオプションを含むドロップダウン メニューを作成する必要があります。

Laravel コレクションの Where メソッドの実践ガイド Laravel コレクションの Where メソッドの実践ガイド Mar 10, 2024 pm 04:36 PM

Laravel コレクションの Where メソッドに関する実践ガイド Laravel フレームワークの開発中、コレクションは、データを操作するための豊富なメソッドを提供する非常に便利なデータ構造です。中でも、Where メソッドは、指定した条件に基づいてコレクション内の要素をフィルタリングできる、一般的に使用されるフィルタリング メソッドです。この記事では、Laravel コレクションでの Where メソッドの使用法を紹介し、特定のコード例を通じてその使用法を示します。 1. Whereメソッドの基本的な使い方

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

See all articles