ホームページ > バックエンド開発 > PHPチュートリアル > ThinkPHP での追加、削除、変更、チェックに関する概要

ThinkPHP での追加、削除、変更、チェックに関する概要

jacklove
リリース: 2023-04-01 08:52:02
オリジナル
1660 人が閲覧しました

今日は ThinkPHP の追加、削除、変更、チェックの操作をいくつか学びました。かなりわかりやすくなったと思います。一緒に学びましょう。

#1. 作成操作

ThinkPHP の add メソッドを使用して、データベースにデータを追加します。

使用方法は次のとおりです。

$User = M("User"); // 实例化User对象
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->add($data);
ログイン後にコピー

または、データ メソッドを使用して、継続的に操作

$User->data($data)->add();
ログイン後にコピー

データ オブジェクトが追加前に作成されている場合 (たとえば、create メソッドまたは data メソッドを使用)、add メソッドはデータを渡す必要はありません。

create メソッドの使用例:

$User = M("User"); // 实例化User对象
// 根据表单提交的POST数据创建数据对象
$User->create();
$User->add(); // 根据条件保存修改的数据
ログイン後にコピー

主キーが自動的に作成される場合成長型であり、データが正常に挿入された場合、Add メソッドの戻り値は、最後に挿入された主キーの値であり、直接取得できます。

2. データの読み取り

ThinkPHP でデータを読み取る方法は多数あり、通常はデータの読み取りと読み取りに分けられます。データセットを読み取ります。

データ セットを読み取るには、findall メソッドまたは select メソッドを使用します (findall メソッドと select メソッドは同等です):

$User = M("User"); // 实例化User对象
// 查找status值为1的用户数据以创建时间排序返回10条数据
$list = $User->where('status=1')->order('create_time')->limit(10)->select();
ログイン後にコピー

select メソッドの戻り値は 2 次元配列で、結果が見つからない場合は空の配列が返されます。 上記の一貫した操作方法と組み合わせると、複雑なデータ クエリを完了できます。最も複雑な一貫した方法は、where メソッドの使用です。この部分には多くのコンテンツが含まれるため、アセンブル方法についてはクエリ言語部分で詳しく説明します。クエリ条件を示します。基本クエリには当面、関連クエリ部分は含まれませんが、関連モデルを使用してデータ操作を実行します。この部分については、関連モデル部分を参照してください。

find メソッドを使用してデータを読み取ります。

データを読み取る操作は、実際にはデータ セットをすべて選択する操作と似ています。これらは find メソッドでも使用できます。違いは、find メソッドは最大 1 つのレコードのみを返すため、limit メソッドは find クエリ操作では無効であることです。

$User = M("User"); // 实例化User对象
// 查找status值为1name值为think的用户数据
$User->where('status=1 AND name="think"
 ')->find();
ログイン後にコピー

条件を満たすデータが複数ある場合でも、find メソッドは最初のレコードのみを返します。

#フィールドの値を読み取りたい場合は、getField メソッドを使用できます。例:

# #

$User = M("User"); // 实例化User对象
// 获取ID为3的用户的昵称
$nickname = $User->where('id=3')->getField('nickname');
ログイン後にコピー

フィールドが 1 つしかない場合は、常に値を返します。

#複数のフィールドが渡された場合、連想配列を返すことができます:

#

$User = M("User"); // 实例化User对象
// 获取所有用户的ID和昵称列表
$list = $User->getField('id,nickname');
ログイン後にコピー
# #返されるリストは配列であり、キー名はユーザーの ID、キー値はユーザーのニックネームです。

3.

データの更新

ThinkPHP の save

メソッドを使用してデータベースを更新します。 、コヒーレント操作の使用もサポートされています。

$User = M("User"); // 实例化User对象
// 要修改的数据对象属性赋值
$data['name'] = 'ThinkPHP';
$data['email'] = 'ThinkPHP@gmail.com';
$User->where('id=5')->save($data); // 根据条件保存修改的数据
ログイン後にコピー
データベースのセキュリティを確保し、エラーを回避するために、更新条件がない場合は、データ テーブル全体を更新します。 、データ オブジェクト自体には主キー フィールドが含まれません。save

メソッドはデータベース レコードを更新しません。 したがって、次のコードは

データベース内のレコードを

変更しません

$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快速入门 方法的介绍

以上がThinkPHP での追加、削除、変更、チェックに関する概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート