Heim Backend-Entwicklung PHP-Tutorial Informationen zur Yii-Modellabfrage basierend auf Array und Objekt

Informationen zur Yii-Modellabfrage basierend auf Array und Objekt

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

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);
Nach dem Login kopieren

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));
Nach dem Login kopieren

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
Nach dem Login kopieren

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),
));
Nach dem Login kopieren

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',
));
Nach dem Login kopieren

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'))
Nach dem Login kopieren

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));
Nach dem Login kopieren

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));
Nach dem Login kopieren

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'));
Nach dem Login kopieren

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'));
Nach dem Login kopieren

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);
Nach dem Login kopieren

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'));
Nach dem Login kopieren

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'));
Nach dem Login kopieren

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'));
Nach dem Login kopieren

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
Nach dem Login kopieren
<🎜 ab >

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));
Nach dem Login kopieren

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(&#39;:name&#39;=>&#39;admin&#39;));
Nach dem Login kopieren

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 "添加失败";
}
Nach dem Login kopieren

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

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

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

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

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

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

六、删除的方法

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

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

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注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!

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

Wie entferne ich doppelte Elemente mithilfe einer foreach-Schleife aus einem PHP-Array? Wie entferne ich doppelte Elemente mithilfe einer foreach-Schleife aus einem PHP-Array? Apr 27, 2024 am 11:33 AM

Die Methode zur Verwendung einer foreach-Schleife zum Entfernen doppelter Elemente aus einem PHP-Array ist wie folgt: Durchlaufen Sie das Array und löschen Sie es, wenn das Element bereits vorhanden ist und die aktuelle Position nicht das erste Vorkommen ist. Wenn beispielsweise in den Datenbankabfrageergebnissen doppelte Datensätze vorhanden sind, können Sie diese Methode verwenden, um diese zu entfernen und Ergebnisse ohne doppelte Datensätze zu erhalten.

Die Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen Die Kunst des PHP Array Deep Copy: Mit verschiedenen Methoden eine perfekte Kopie erzielen May 01, 2024 pm 12:30 PM

Zu den Methoden zum tiefen Kopieren von Arrays in PHP gehören: JSON-Kodierung und -Dekodierung mit json_decode und json_encode. Verwenden Sie array_map und clone, um tiefe Kopien von Schlüsseln und Werten zu erstellen. Verwenden Sie Serialize und Deserialize für die Serialisierung und Deserialisierung.

PHP-Array-Schlüsselwertumdrehen: Vergleichende Leistungsanalyse verschiedener Methoden PHP-Array-Schlüsselwertumdrehen: Vergleichende Leistungsanalyse verschiedener Methoden May 03, 2024 pm 09:03 PM

Der Leistungsvergleich der PHP-Methoden zum Umdrehen von Array-Schlüsselwerten zeigt, dass die Funktion array_flip() in großen Arrays (mehr als 1 Million Elemente) eine bessere Leistung als die for-Schleife erbringt und weniger Zeit benötigt. Die for-Schleifenmethode zum manuellen Umdrehen von Schlüsselwerten dauert relativ lange.

Wie konvertiere ich ein MySQL-Abfrageergebnisarray in ein Objekt? Wie konvertiere ich ein MySQL-Abfrageergebnisarray in ein Objekt? Apr 29, 2024 pm 01:09 PM

So konvertieren Sie ein MySQL-Abfrageergebnis-Array in ein Objekt: Erstellen Sie ein leeres Objekt-Array. Durchlaufen Sie das resultierende Array und erstellen Sie für jede Zeile ein neues Objekt. Verwenden Sie eine foreach-Schleife, um die Schlüssel-Wert-Paare jeder Zeile den entsprechenden Eigenschaften des neuen Objekts zuzuweisen. Fügt dem Objektarray ein neues Objekt hinzu. Schließen Sie die Datenbankverbindung.

Best Practices für Deep Copying von PHP-Arrays: Entdecken Sie effiziente Methoden Best Practices für Deep Copying von PHP-Arrays: Entdecken Sie effiziente Methoden Apr 30, 2024 pm 03:42 PM

Die beste Vorgehensweise zum Durchführen einer Array-Deep-Kopie in PHP besteht darin, json_decode(json_encode($arr)) zu verwenden, um das Array in einen JSON-String zu konvertieren und ihn dann wieder in ein Array umzuwandeln. Verwenden Sie unserialize(serialize($arr)), um das Array in eine Zeichenfolge zu serialisieren und es dann in ein neues Array zu deserialisieren. Verwenden Sie den RecursiveIteratorIterator, um mehrdimensionale Arrays rekursiv zu durchlaufen.

Anwendung der PHP-Array-Gruppierungsfunktion bei der Datensortierung Anwendung der PHP-Array-Gruppierungsfunktion bei der Datensortierung May 04, 2024 pm 01:03 PM

Die PHP-Funktion array_group_by kann Elemente in einem Array basierend auf Schlüsseln oder Abschlussfunktionen gruppieren und ein assoziatives Array zurückgeben, wobei der Schlüssel der Gruppenname und der Wert ein Array von Elementen ist, die zur Gruppe gehören.

Praxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien Praxis der mehrdimensionalen Sortierung von PHP-Arrays: von einfachen bis hin zu komplexen Szenarien Apr 29, 2024 pm 09:12 PM

Die mehrdimensionale Array-Sortierung kann in Einzelspaltensortierung und verschachtelte Sortierung unterteilt werden. Bei der Einzelspaltensortierung kann die Funktion array_multisort() zum Sortieren nach Spalten verwendet werden. Bei der verschachtelten Sortierung ist eine rekursive Funktion erforderlich, um das Array zu durchlaufen und zu sortieren. Zu den praktischen Beispielen gehören die Sortierung nach Produktname und die Sortierung von Verbindungen nach Verkaufsmenge und Preis.

Was ist der Unterschied zwischen Arrays und Objekten in PHP? Was ist der Unterschied zwischen Arrays und Objekten in PHP? Apr 29, 2024 pm 02:39 PM

In PHP ist ein Array eine geordnete Sequenz, und auf Elemente wird über einen Index zugegriffen. Ein Objekt ist eine Entität mit Eigenschaften und Methoden, die über das Schlüsselwort new erstellt werden. Der Array-Zugriff erfolgt über einen Index, der Objektzugriff über Eigenschaften/Methoden. Es werden Array-Werte und Objektreferenzen übergeben.

See all articles