Heim >Backend-Entwicklung >PHP-Tutorial >Eine Zusammenfassung zum Hinzufügen, Löschen, Ändern und Einchecken in ThinkPHP

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

jacklove
jackloveOriginal
2018-06-15 10:39:231623Durchsuche

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);

oder verwenden Sie die Datenmethode zum Betrieb kontinuierlich

$User->data($data)->add();

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(); // 根据条件保存修改的数据

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();

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();

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');

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');

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); // 根据条件保存修改的数据

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对象
// 要修改的数据对象属性赋值

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

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

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

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

使用create方法的例子:

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

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

如果只是更新个别字段的值,可以使用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'));

而对于统计字段(通常指的是数字类型)的更新,系统还提供了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

四、删除数据

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

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

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

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

本文讲解了关于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!

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