Heim Backend-Entwicklung PHP-Tutorial 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());		}	}}?>
Nach dem Login kopieren

html

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>CURD</title>
Nach dem Login kopieren


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Was sind die Unterschiede zwischen Huawei GT3 Pro und GT4? Dec 29, 2023 pm 02:27 PM

Viele Benutzer werden sich bei der Auswahl von Smartwatches für die Marke Huawei entscheiden. Viele Benutzer sind neugierig auf den Unterschied zwischen Huawei GT3pro und GT4. Was sind die Unterschiede zwischen Huawei GT3pro und GT4? 1. Aussehen GT4: 46 mm und 41 mm, das Material ist Glasspiegel + Edelstahlgehäuse + hochauflösende Faserrückschale. GT3pro: 46,6 mm und 42,9 mm, das Material ist Saphirglas + Titangehäuse/Keramikgehäuse + Keramikrückschale 2. Gesundes GT4: Mit dem neuesten Huawei Truseen5.5+-Algorithmus werden die Ergebnisse genauer. GT3pro: EKG-Elektrokardiogramm sowie Blutgefäß und Sicherheit hinzugefügt

Fix: Snipping-Tool funktioniert unter Windows 11 nicht Fix: Snipping-Tool funktioniert unter Windows 11 nicht Aug 24, 2023 am 09:48 AM

Warum das Snipping-Tool unter Windows 11 nicht funktioniert Das Verständnis der Grundursache des Problems kann dabei helfen, die richtige Lösung zu finden. Hier sind die häufigsten Gründe, warum das Snipping Tool möglicherweise nicht ordnungsgemäß funktioniert: Focus Assistant ist aktiviert: Dies verhindert, dass das Snipping Tool geöffnet wird. Beschädigte Anwendung: Wenn das Snipping-Tool beim Start abstürzt, ist es möglicherweise beschädigt. Veraltete Grafiktreiber: Inkompatible Treiber können das Snipping-Tool beeinträchtigen. Störungen durch andere Anwendungen: Andere laufende Anwendungen können mit dem Snipping Tool in Konflikt geraten. Das Zertifikat ist abgelaufen: Ein Fehler während des Upgrade-Vorgangs kann zu diesem Problem führen. Diese einfache Lösung ist für die meisten Benutzer geeignet und erfordert keine besonderen technischen Kenntnisse. 1. Aktualisieren Sie Windows- und Microsoft Store-Apps

Asynchrone Verarbeitungsmethode von Select Channels Go zur gleichzeitigen Programmierung mit Golang Asynchrone Verarbeitungsmethode von Select Channels Go zur gleichzeitigen Programmierung mit Golang Sep 28, 2023 pm 05:27 PM

Asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo mit Golang Einführung: Die gleichzeitige Programmierung ist ein wichtiger Bereich in der modernen Softwareentwicklung, der die Leistung und Reaktionsfähigkeit von Anwendungen effektiv verbessern kann. In der Go-Sprache kann die gleichzeitige Programmierung mithilfe von Channels- und Select-Anweisungen einfach und effizient implementiert werden. In diesem Artikel wird die Verwendung von Golang für die asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo vorgestellt und spezifische Informationen bereitgestellt

So verbergen Sie das ausgewählte Element in jquery So verbergen Sie das ausgewählte Element in jquery Aug 15, 2023 pm 01:56 PM

So verbergen Sie das Select-Element in JQuery: 1. Methode hide (), fügen Sie die jQuery-Bibliothek in die HTML-Seite ein, Sie können verschiedene Selektoren verwenden, um das Select-Element auszublenden, der ID-Selektor ersetzt die SelectId durch die ID des von Ihnen ausgewählten Elements tatsächlich verwenden; 2. css()-Methode, verwenden Sie den ID-Selektor, um das ausgewählte Element auszuwählen, das ausgeblendet werden muss, verwenden Sie die css()-Methode, um das Anzeigeattribut auf „none“ zu setzen, und ersetzen Sie selectId durch die ID des ausgewählten Elements.

So implementieren Sie die Änderungsereignisbindung ausgewählter Elemente in jQuery So implementieren Sie die Änderungsereignisbindung ausgewählter Elemente in jQuery Feb 23, 2024 pm 01:12 PM

jQuery ist eine beliebte JavaScript-Bibliothek, die zur Vereinfachung der DOM-Manipulation, Ereignisbehandlung, Animationseffekte usw. verwendet werden kann. Bei der Webentwicklung stoßen wir häufig auf Situationen, in denen wir die Ereignisbindung für ausgewählte Elemente ändern müssen. In diesem Artikel wird erläutert, wie Sie mit jQuery ausgewählte Elementänderungsereignisse binden, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir ein Dropdown-Menü mit Optionen erstellen, die Beschriftungen verwenden:

So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone So beheben Sie den Fehler „Verbindung zum App Store nicht möglich' auf dem iPhone Jul 29, 2023 am 08:22 AM

Teil 1: Erste Schritte zur Fehlerbehebung Überprüfen des Apple-Systemstatus: Bevor wir uns mit komplexen Lösungen befassen, beginnen wir mit den Grundlagen. Das Problem liegt möglicherweise nicht an Ihrem Gerät; die Server von Apple sind möglicherweise ausgefallen. Besuchen Sie die Systemstatusseite von Apple, um zu sehen, ob der AppStore ordnungsgemäß funktioniert. Wenn es ein Problem gibt, können Sie nur warten, bis Apple es behebt. Überprüfen Sie Ihre Internetverbindung: Stellen Sie sicher, dass Sie über eine stabile Internetverbindung verfügen, da das Problem „Verbindung zum AppStore nicht möglich“ manchmal auf eine schlechte Verbindung zurückzuführen ist. Versuchen Sie, zwischen WLAN und mobilen Daten zu wechseln oder die Netzwerkeinstellungen zurückzusetzen (Allgemein > Zurücksetzen > Netzwerkeinstellungen zurücksetzen > Einstellungen). Aktualisieren Sie Ihre iOS-Version:

Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Ein praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Mar 10, 2024 pm 04:36 PM

Praktischer Leitfaden zur Where-Methode in Laravel-Sammlungen Während der Entwicklung des Laravel-Frameworks stellen Sammlungen eine sehr nützliche Datenstruktur dar, die umfangreiche Methoden zur Datenbearbeitung bereitstellt. Unter diesen ist die Where-Methode eine häufig verwendete Filtermethode, mit der Elemente in einer Sammlung basierend auf bestimmten Bedingungen gefiltert werden können. In diesem Artikel wird die Verwendung der Where-Methode in Laravel-Sammlungen vorgestellt und ihre Verwendung anhand spezifischer Codebeispiele demonstriert. 1. Grundlegende Verwendung der Where-Methode

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

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

See all articles