この記事ではデータベース操作機能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 サイトを参照してください。
関連する推奨事項:
以上がDiscuz!X/データベース DB::関数の操作方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。