ホームページ  >  記事  >  バックエンド開発  >  Discuz!X/データベース DB::関数の操作方法

Discuz!X/データベース DB::関数の操作方法

jacklove
jackloveオリジナル
2018-05-21 17:30:294515ブラウズ

この記事ではデータベース操作機能dbについて解説します。

DB::table($tablename)获取正确带前缀的表名,转换数据库句柄,
DB::delete($tablename, 条件,条数限制)删除表中的数据
DB::insert($tablename, 数据(数组),是否返回插入ID,是否是替换式,是否silent)插入数据操作
DB::update($tablename, 数据(数组)条件)更新操作
DB::fetch(查询后的资源)从结果集中取关联数组,注意如果结果中的两个或以上的列具有相同字段名,最后一列将优先。
DB::fetch_first($sql)取查询的第一条数据fetch
DB::fetch_all($sql)查询并fetch
DB::result_first($sql)查询结果集的第一个字段值
DB::query($sql)普通查询
DB::num_rows(查询后的资源)获得记录集总条数
DB::_execute(命令,参数)执行mysql类的命令
DB::limit(n,n)返回限制字串
DB::field(字段名, $pid) 返回条件,如果为数组则返回 in 条件
DB::order(别名, 方法)排序

注: 特殊文字をエスケープせずにデータベースに挿入する場合のエラーを回避するには、データベースに挿入する前にすべてのデータを addslashes() で処理する必要があります。 Discuz! の GET、POST、および FILE によって取得されたすべての変数は、デフォルトで addslashes() を使用してエスケープされているため、繰り返す必要はありません。データ処理が必要な場合 (直接表示など)、stripslashes() を使用して復元できますが、データはデータベースに挿入する前に再度エスケープする必要があります。キャッシュ ファイルでは、通常、キャッシュされたデータの値をエスケープするために addcslashes($string, ''') が使用されます。

最も一般的なクエリデータベースの例:

単一のデータを取得:

$rs = DB::fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE uid=1");

ここで取得されたデータはUID 1のユーザーのデータですが、ユーザーデータを取得するためのdiscuzのgetuserbyuidもあります

複数のデータを取得データの内容:

$rs = DB::fetch_all("SELECT * FROM " .DB::table('common_member')." WHERE uid in(1,2,3,4,5,6)");

ここで取得するのはUID 1 2 3 4 5 6のユーザーの情報です

データ挿入の説明

呼び出しメソッド: DB::insert()

説明: かどうかについて。値が 1 である限り、はいを意味します。そうでない場合は、無視するか空白のままにしてください

例:

まず、pre_test という名前のテーブルがあります

このテーブルには次のフィールドがあります: id (増分) name uidフィールドのタイプは気にしないでください

if(DB::insert('test',array('id'=>NULL,'name'=>'me','uid'=>1))) showmessage("数据插入成功");

注: ここでの配列のキー名はデータテーブルのフィールド名であり、キー値は挿入された対応するフィールドの値です

DB::fetch_all('SELECT * FROM %t WHERE panel=%d', array($this->_table, $panel), 'uid');
DB::fetch_all('SELECT * FROM %t WHERE uid=%d ORDER BY dateline DESC', array($this->_table, $uid), 'bid') : array();

注:
% 数値DZ ではパラメータとして使用されます。最初にそれを渡す必要があります。2 番目の場合は代わりに DB::table($this->_table) を使用できます。3 番目の場合は実際の式を使用できます。この場合、問題はありません。この記事では、関数の操作を要約して整理しています。詳細については、PHP 中国語 Web サイトを参照してください。


関連する推奨事項:

ThinkPHP フレームワーク String クラスの詳細な説明


JS の基本 - 数学配列 Date


jQuery で何ができるのか?

以上がDiscuz!X/データベース DB::関数の操作方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。