suchen
HeimBackend-EntwicklungPHP-TutorialInformationen zur Yii-Modellabfrage basierend auf Array und Objekt

Informationen zur Yii-Modellabfrage basierend auf Array und Objekt

Jun 15, 2018 pm 01:58 PM
modelyii对象数组查询

Dieser Artikel stellt hauptsächlich die Modellabfragetechniken von Yii basierend auf Arrays und Objekten vor und analysiert die Modellabfragetechniken von Yii für Arrays und Objekte anhand von Beispielen im Detail.

Dieser Artikel beschreibt Yiis Modellieren Sie Abfragetechniken basierend auf Arrays und Objekten mit Beispielen. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Für einen Modellbeitrag gibt es die folgenden 4 Abfragemethoden, die Objekte oder Objektarrays zurückgeben.

//查找满足指定条件的结果中的第一行 find the first row satisfying the specified condition
$post=Post::model()->find($condition,$params);
//查找具有指定主键值的那一行 find the row with the specified primary key
$post=Post::model()->findByPk($postID,$condition,$params);
//查找具有指定属性值的行 find the row with the specified attribute values
$post=Post::model()->findByAttributes($attributes,$condition,$params);//未找到返回null
//通过指定的SQL 语句查找结果中的第一行 find the first row using the specified SQL statement
$post=Post::model()->findBySql($sql,$params);

Wenn die Suchmethode eine Zeile findet, die die Abfragebedingungen erfüllt, gibt sie eine Post-Instanz zurück, deren Attribute die Werte der entsprechenden Spalten in der Datentabellenzeile enthalten. Dann können wir den geladenen Wert genauso lesen wie die Eigenschaften eines normalen Objekts, beispielsweise echo $post->title;. Die Suchmethode gibt null zurück, wenn anhand der angegebenen Abfragekriterien nichts in der Datenbank gefunden wird.

Beim Aufruf von find verwenden wir $condition und $params, um die Abfragebedingungen anzugeben. Dabei kann $condition ein WHERE-String in der SQL-Anweisung sein und $params ist ein Array von Parametern, deren Werte an die Platzhalter in $condation gebunden werden sollen. Zum Beispiel: Angenommen, wir fragen die Daten mit postID = 10 ab

// find the row with postID=10
$post=Post::model()->find('postID=:postID', array(':postID'=>10));

Die Bedingung $condition ist der Where-Teil unserer SQL-Anweisung. Sie werden über Parameter übergeben, aber der Name wird mit „:“ hinzugefügt. ".

YII verfügt über eine CDbCriteria-Klasse zum Erstellen von Abfragen. Wenn wir einen Titel mit einer Post-ID von 10 abfragen, wird CdbCriteria wie folgt aufgebaut:

$criteria=new CDbCriteria;
$criteria->select='title'; // only select the 'title' column
$criteria->condition='postID=:postID';
$criteria->params=array(':postID'=>10);
$post=Post::model()->find($criteria); // $params is not needed

Eine Alternative zu CDbCriteria besteht darin, ein Array an zu übergeben Methode finden. Die Schlüssel und Werte des Arrays entsprechen jeweils den Attributnamen und Werten des Kriteriums. Das obige Beispiel kann wie folgt umgeschrieben werden:

$post=Post::model()->find(array(
  'select'=>'title',
  'condition'=>'postID=:postID',
  'params'=>array(':postID'=>10),
));

Gilt natürlich auch für findAll()

self::$_items[$type]=array();
$models=self::model()->findAll(array(
  'condition'=>'type=:type',
  'params'=>array(':type'=>$type),
  'order'=>'position',
));

wenn eine Abfragebedingung vorliegt. Wenn es darum geht, mehrere Spalten anhand bestimmter Werte abzugleichen, können wir findByAttributes() verwenden. Wir machen den Parameter $attributes zu einem Array von Werten, die nach Spaltennamen indiziert sind.
$attributes in findByAttributes ist der Name des Feldes. Wie kann abgefragt werden, ob der Titel abc ist? Siehe unten

Post::model()->findByAttributes(array('title'=>'abc'))

Andere Methoden:

1. $admin=Admin::model()->findAll($condition,$params);

Diese Methode dient zum Abfragen einer Sammlung basierend auf einer Bedingung, wie zum Beispiel:

findAll("username=:name",array(":name"=>$username));

2. $admin=Admin::model()->findAllByPk( $postIDs, $condition,$params);
findAllByPk($id,"name like ':name' and age=:age" ,array(':name'=>$name,'age' => $age));
Diese Methode dient der Abfrage einer Sammlung basierend auf dem Primärschlüssel, wie zum Beispiel:

findAllByPk(array(1,2));

3 ::model()->findAllByAttributes ($attributes,$condition,$params);

Diese Methode dient zum Abfragen einer Sammlung basierend auf Bedingungen, bei denen es sich um mehrere Bedingungen handeln kann ein Array, wie zum Beispiel:

findAllByAttributes(array('username'=>'admin'));

4. $admin=Admin::model()->findAllBySql($sql,$params);

Diese Methode besteht darin, ein Array basierend auf der SQL-Anweisung abzufragen, wie zum Beispiel:

findAllBySql("select *from admin where username=:name",array(':name'=>'admin'));

2 Methode zum Abfragen von Objekten

1. model()->findByPk($postID,$condition,$ params);

Fragen Sie ein Objekt basierend auf dem Primärschlüssel ab, wie zum Beispiel:

findByPk(1);

2 . $row=Admin::model()->find($condition, $params);

Fragen Sie einen Datensatz basierend auf einer Bedingung ab. Es können mehrere vorhanden sein, es werden jedoch nur Ergebnisse zurückgegeben die erste Datenzeile, wie zum Beispiel:

find('username=:name',array(':name'=>'admin'));

3. $admin=Admin::model()->findByAttributes($attributes,$condition,$params);

Diese Methode dient zum Abfragen eines Datensatzes basierend auf Bedingungen, bei denen es sich um mehrere Bedingungen handeln kann. Die Bedingungen werden in das Array eingefügt und das erste Datenelement wird ebenfalls abgefragt, z. B.:

findByAttributes(array('username'=>'admin'));

4. $admin=Admin::model()->findBySql($sql,$params);

Diese Methode dient der Abfrage eines Datensatzes basierend auf der SQL-Anweisung , und es fragt auch das erste Datenelement ab, wie zum Beispiel:

findBySql("select *from admin where username=:name",array(':name'=>'admin'));

5. Stellen Sie eine Methode zum Abrufen von SQL zusammen und fragen Sie ein Objekt basierend auf find

$criteria=new CDbCriteria;
$criteria->select='username'; // only select the 'title' column
$criteria->condition='username=:username';
$criteria->params=array(':username=>'admin');
$post=Post::model()->find($criteria); // $params is not needed

3. Fragen Sie die Nummer ab und ermitteln Sie, ob die Abfrage Ergebnisse liefert

1. ;

Diese Methode besteht darin, basierend auf einer Bedingung abzufragen, wie viele Datensätze eine Sammlung hat, und eine int-Zahl zurückzugeben, z. B.

count("username=:name",array(":name"=>$username));

2 $n=Post: :model()->countBySql($sql,$params);

Diese Methode dient dazu, basierend auf der SQL-Anweisung „Record“ abzufragen, wie viele Elemente sich in einer Sammlung befinden, und eine int-Typnummer zurückzugeben , wie zum Beispiel

countBySql("select *from admin where username=:name",array(':name'=>'admin'));

3 $exists=Post::model()->exists($condition,$params);
Diese Methode Es basiert auf einer Bedingung Abfrage, ob das erhaltene Array Daten enthält, andernfalls wird es nicht gefunden. 5. Änderungsmethoden

1. ->updateAll($attributes,$condition,$params);

$admin=new Admin;
$admin->username=$username;
$admin->password=$password;
if($admin->save()>0){
  echo "添加成功";
}else{
  echo "添加失败";
}

2. Post::model()->updateByPk($pk,$attributes,$condition, $params);

$count = Admin::model()->updateByPk(1,array('username'=>'admin','password'=>'admin'));
$count = Admin::model()->updateByPk(array(1,2),array('username'=>'admin','password'=>'admin'),'username=:name',array(':name'=>'admin'));
if($count>0){
  echo "修改成功";
}else{
  echo "修改失败";
}

$pk代表主键,可以是一个也可以是一个集合,$attributes代表是要修改的字段的集合,$condition代表条件,$params传入的值

3、Post::model()->updateCounters($counters,$condition,$params);

$count =Admin::model()->updateCounters(array('status'=>1),'username=:name',array(':name'=>'admin'));
if($count>0){
  echo "修改成功";
}else{
  echo "修改失败";
}

array('status'=>1)代表数据库中的admin表根据条件username='admin',查询出的所有结果status字段都自加1

六、删除的方法

1、Post::model()->deleteAll($condition,$params);

$count = Admin::model()->deleteAll('username=:name and password=:pass',array(':name'=>'admin',':pass'=>'admin'));
      $id=1,2,3
      deleteAll('id in(".$id.")');删除id为这些的数据
if($count>0){
  echo "删除成功";
}else{
  echo "删除失败";
}

2、Post::model()->deleteByPk($pk,$condition,$params);

$count = Admin::model()->deleteByPk(1);
$count = Admin::model()->deleteByPk(array(1,2),'username=:name',array(':name'=>'admin'));
if($count>0){
  echo "删除成功";
}else{
  echo "删除失败";
}

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

关于Yii Framework框架获取分类下面的所有子类的方法

如何通过Yii框架使用魔术方法实现跨文件调用的功能  

Das obige ist der detaillierte Inhalt vonInformationen zur Yii-Modellabfrage basierend auf Array und Objekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
PHP in Aktion: Beispiele und Anwendungen in realer WeltPHP in Aktion: Beispiele und Anwendungen in realer WeltApr 14, 2025 am 12:19 AM

PHP wird in E-Commerce, Content Management Systems und API-Entwicklung häufig verwendet. 1) E-Commerce: Wird für die Einkaufswagenfunktion und Zahlungsabwicklung verwendet. 2) Content -Management -System: Wird für die Erzeugung der dynamischen Inhalte und die Benutzerverwaltung verwendet. 3) API -Entwicklung: Wird für die erholsame API -Entwicklung und die API -Sicherheit verwendet. Durch Leistungsoptimierung und Best Practices werden die Effizienz und Wartbarkeit von PHP -Anwendungen verbessert.

PHP: Erstellen interaktiver Webinhalte mühelosPHP: Erstellen interaktiver Webinhalte mühelosApr 14, 2025 am 12:15 AM

PHP erleichtert es einfach, interaktive Webinhalte zu erstellen. 1) Generieren Sie Inhalte dynamisch, indem Sie HTML einbetten und in Echtzeit basierend auf Benutzereingaben oder Datenbankdaten anzeigen. 2) Verarbeitungsformularübermittlung und dynamische Ausgabe erzeugen, um sicherzustellen, dass HTMLSpecialChars zur Vorbeugung von XSS verwendet wird. 3) Verwenden Sie MySQL, um ein Benutzerregistrierungssystem zu erstellen und Anweisungen von Password_hash und Preprocessing vorzubereiten, um die Sicherheit zu verbessern. Durch die Beherrschung dieser Techniken wird die Effizienz der Webentwicklung verbessert.

PHP und Python: Vergleich von zwei beliebten ProgrammiersprachenPHP und Python: Vergleich von zwei beliebten ProgrammiersprachenApr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

Die dauerhafte Relevanz von PHP: Ist es noch am Leben?Die dauerhafte Relevanz von PHP: Ist es noch am Leben?Apr 14, 2025 am 12:12 AM

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

Der aktuelle Status von PHP: Ein Blick auf WebentwicklungstrendsDer aktuelle Status von PHP: Ein Blick auf WebentwicklungstrendsApr 13, 2025 am 12:20 AM

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

Php gegen andere Sprachen: Ein VergleichPhp gegen andere Sprachen: Ein VergleichApr 13, 2025 am 12:19 AM

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

PHP vs. Python: Kernmerkmale und FunktionenPHP vs. Python: Kernmerkmale und FunktionenApr 13, 2025 am 12:16 AM

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

PHP: Eine Schlüsselsprache für die WebentwicklungPHP: Eine Schlüsselsprache für die WebentwicklungApr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

See all articles

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)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung