Eine Zusammenfassung zum Hinzufügen, Löschen, Ändern und Einchecken in ThinkPHP

jacklove
Freigeben: 2023-04-01 08:52:02
Original
1615 Leute haben es durchsucht

Heute habe ich einige Vorgänge zum Hinzufügen, Löschen, Ändern und Einchecken in ThinkPHP gelernt. Ich habe das Gefühl, dass das Schreiben ziemlich klar ist.

1. Erstellungsvorgang

Verwenden Sie die Add-Methode in ThinkPHP, um Daten zur Datenbank hinzuzufügen.

Die Verwendungsmethode ist wie folgt:

$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
Nach dem Login kopieren

oder verwenden Sie die Datenmethode zum Betrieb kontinuierlich

$User->data($data)->add();
Nach dem Login kopieren

Wenn das Datenobjekt vor dem Hinzufügen erstellt wurde (z. B. mit der Methode „create“ oder „data“), muss die Methode „add“ keine Daten übergeben.

Beispiel für die Verwendung der Methode „create“:

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->add(); // 根据条件保存修改的数据
Nach dem Login kopieren

Wenn Ihr Primärschlüssel automatisch ist wachsender Typ, und wenn die Daten erfolgreich eingefügt wurden, ist der Rückgabewert der Add-Methode der zuletzt eingefügte Primärschlüsselwert, der direkt abgerufen werden kann.

2. Daten lesen

Es gibt viele Möglichkeiten, Daten in ThinkPHP zu lesen, normalerweise unterteilt in das Lesen von Daten und Datensätze lesen.

Um den Datensatz zu lesen, verwenden Sie die Findall- oder Select-Methode (Findall- und Select-Methoden sind gleichwertig):

$User = M("User"); // 实例化User对象
// 查找status值为1的用户数据以创建时间排序返回10条数据
$list = $User->where('status=1')->order('create_time')->limit(10)->select();
Nach dem Login kopieren

Der Rückgabewert der Select-Methode ist ein zweidimensionales Array. Wenn keine Ergebnisse gefunden werden, wird ein leeres Array zurückgegeben. In Kombination mit den oben genannten kohärenten Betriebsmethoden können komplexe Datenabfragen durchgeführt werden. Die komplexeste kohärente Methode sollte die Verwendung der Methode where sein. Da dieser Teil viel Inhalt umfasst, werden wir ihn im Teil der Abfragesprache ausführlich zum Zusammenstellen verwenden Abfragebedingungen veranschaulichen. Die Basisabfrage umfasst vorerst nicht den zugehörigen Abfrageteil, sondern verwendet das zugehörige Modell, um Datenoperationen durchzuführen. Weitere Informationen zu diesem Teil finden Sie im zugehörigen Modellteil.

Um Daten zu lesen, verwenden Sie die Suchmethode:

Der Vorgang zum Lesen von Daten ähnelt tatsächlich dem des Datensatzes „Alle auswählen“. Die verfügbaren kohärenten Operationsmethoden können auch in der Find-Methode verwendet werden. Der Unterschied besteht darin, dass die Find-Methode höchstens einen Datensatz zurückgibt, sodass die Limit-Methode für die Find-Abfrageoperation ungültig ist.

$User = M("User"); // 实例化User对象
// 查找status值为1name值为think的用户数据
$User->where('status=1 AND name="think"
 ')->find();
Nach dem Login kopieren

Auch wenn mehr als ein Datenelement die Bedingung erfüllt, gibt die Suchmethode nur den ersten Datensatz zurück.

Wenn Sie den Wert eines Feldes auslesen möchten, können Sie zum Beispiel die getField-Methode verwenden:

$User = M("User"); // 实例化User对象
// 获取ID为3的用户的昵称
$nickname = $User->where('id=3')->getField('nickname');
Nach dem Login kopieren

Wenn es nur ein Feld gibt, immer einen Wert zurückgeben.

Wenn mehrere Felder übergeben werden, kann ein assoziatives Array zurückgegeben werden:

$User = M("User"); // 实例化User对象
// 获取所有用户的ID和昵称列表
$list = $User->getField('id,nickname');
Nach dem Login kopieren

Die zurückgegebene Liste ist ein Array, der Schlüsselname ist die ID des Benutzers und der Schlüsselwert ist der Spitzname des Benutzers.

3. Daten aktualisieren

Verwenden Sie die Speichermethode in ThinkPHP, um die Datenbank zu aktualisieren , und Die Verwendung kohärenter Operationen wird ebenfalls unterstützt.

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->save($data); // 根据条件保存修改的数据
Nach dem Login kopieren

Um die Sicherheit der Datenbank zu gewährleisten und Fehler beim Aktualisieren der gesamten Datentabelle zu vermeiden, wenn keine Aktualisierungsbedingungen vorliegen , das Datenobjekt selbst enthält keine Primärschlüsselfelder. Die Methode save aktualisiert keine Datenbankdatensätze.

Daher wird der folgende Code keine Datensätze in der Datenbank

ändern

$User->save($data);

除非使用下面的方式:

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
Nach dem Login kopieren

$data['id'] = 5;
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->save($data); // 根据条件保存修改的数据
Nach dem Login kopieren

如果id是数据表的主键的话,系统自动会把主键的值作为更新条件来更新其他字段的值。

还有一种方法是通过create或者data方法创建要更新的数据对象,然后进行保存操作,这样save方法的参数可以不需要传入。

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->data($data)->save(); // 根据条件保存修改的数据
Nach dem Login kopieren

使用create方法的例子:

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->save(); //根据条件保存要修改的数据
Nach dem Login kopieren

上面的情况,表单必须包含一个以主键为名称的隐藏域,才能完成保存操作。

如果只是更新个别字段的值,可以使用setField方法:

$User = M("User"); // 实例化User对象
// 更改用户的name值
$User-> where('id=5')->setField('name','ThinkPHP');
setField方法支持同时更新多个字段,只需要传入数组即可,例如:
$User = M("User"); // 实例化User对象
// 更改用户的name和email的值
$User-> where('id=5')->setField(array('name','email'),array('ThinkPHP','ThinkPHP@gmail.com'));
Nach dem Login kopieren

而对于统计字段(通常指的是数字类型)的更新,系统还提供了setIncsetDec方法:

$User = M("User"); // 实例化User对象
$User->setInc('score','id=5',3);// 用户的积分加3
$User->setInc('score','id=5'); // 用户的积分加1
$User->setDec('score','id=5',5);// 用户的积分减5
$User->setDec('score','id=5'); // 用户的积分减1
Nach dem Login kopieren

四、删除数据

在ThinkPHP使用delete方法删除数据库的记录。同样可以使用连贯操作进行删除操作。

$User = M("User"); // 实例化User对象
$User->where('id=5')->delete(); // 删除id为5的用户数据
$User->where('status=0')->delete(); // 删除所有状态为0的用户数据
Nach dem Login kopieren

delete方法可以用于删除单个或者多个数据,主要取决于删除条件,也就是where方法的参数,也可以用orderlimit方法来限制要删除的个数,例如:

// 删除所有状态为0的5个用户数据按照创建时间排序
$User->where('status=0')->order('create_time')->limit('5')->delete();
Nach dem Login kopieren

本文讲解了关于ThinkPHP的增、删、改、查 的一些总结,更多相关内容请关注php中文网。

相关推荐:

where方法的应用讲解

ThinkPHP 双重循环遍历输出 的相关内容

ThinkPHP5快速入门 方法的介绍

Das obige ist der detaillierte Inhalt vonEine Zusammenfassung zum Hinzufügen, Löschen, Ändern und Einchecken in ThinkPHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage