ホームページ >バックエンド開発 >PHPチュートリアル >%s %t %f %i %s %d %n discuz データ取得の使用方法

%s %t %f %i %s %d %n discuz データ取得の使用方法

WBOY
WBOYオリジナル
2016-06-23 13:48:351398ブラウズ

discuz にはそのようなシンボルがたくさんありますが、これらのシンボルは記述の便宜のためのものであると思われます
さらに、discuz の SQL ステートメントには明確な説明がありません。もちろん、ソース コードは部分的にしか理解できません
たとえば、このような文の後に括弧内のパラメーターがいくつかある場合もあります


ディスカッションに返信(解決策)

あなたは倹約しすぎです
少なくとも見たものを投稿してください?

http://faq.comsenz.com/library/plug/construct/construct_db.htm
ドキュメントはありますが、見つかりませんでした...

http://faq.comsenz.com/library /plug/construct /construct_db.htm
ドキュメントはありますが、見つかりません...


支持的fomat有: %tDB::table() %dintval() %saddslashes() %nin IN (1,2,3) %fsprintf('%f', $var) %i直接使用不进行处理

これはどういう意味ですか?

あなたは倹約しすぎです
少なくとも見たものを投稿してくださいね?



たとえば、次の文
DB::query("SHOW FIELDS FROM ".DB::table($r_table), 'SILENT'))

$r_table と SILENT は何を表しますか? もちろん、$r_table はデータ テーブル名ですが、フィールドの観点からは変数です。 , たとえば、次の文です
$ query = DB::query('SELECT clid FROM %t WHERE riding=%d AND fid=%d', array($this->_table, $rid, $fid));
ここでの配列は何を表しますか?

%t: テーブル名プレースホルダー、DB::fetch_first("SELECT * FROM %t",array('common_member'));

%d: 値placeholder, DB::fetch_first("SELECT * FROM %t WHERE uid=%d", array('common_member',1)); は自動的に intval を実行します
%s: 文字プレースホルダー, DB::fetch_first("SELECT * FROM %t WHERE username=%s",array('common_member','Administrator')); は自動的にラッシュを追加し、特殊文字をエスケープします
%n: DB::fetch_all("SELECT * FROM %t WHERE uid IN( %n )",array('common_member',array(1,2,3)));
%f: %d と同様、単なる浮動小数点数、めったに使用されません
%i: そのまま出力、DB::fetch_first( " SELECT * FROM %t WHERE username='%i'",array('common_member','Administrator'));

%t: テーブル名のプレースホルダー、DB::fetch_first("SELECT * FROM % t",array ('common_member'));

%d: 数値プレースホルダー、DB::fetch_first("SELECT * FROM %t WHERE uid=%d",array('common_member',1)); intval を自動的に実行します
%s:文字プレースホルダー、DB::fetch_first("SELECT * FROM %t WHERE username=%s"、array('common_member','administrator')); 自動的にラッシュを追加し、特殊文字をエスケープします
%n: DB::fetch_all( "SELECT * FROM %t WHERE uid IN(%n)",array('common_member',array(1,2,3)));
%f: %d と同様、浮動小数点数のみで、ほとんど使用されません
% i: そのまま出力します。 DB::fetch_first("SELECT * FROM %t WHERE username='%i'",array('common_member','administrator'));

配列が続くとはどういう意味ですか? ? そして、そのパラメータは何を意味するのでしょうか?
PHP の基盤を改善する必要があります...

次の配列は fetch_first メソッドのパラメータであり、配列内の値は次のような前の SQL プレースホルダーと同じです。ステートメント内の %t と %d は 1 対 1 に対応します。例: DB::fetch_first("SELECT * FROM %t WHERE uid=%d",array('common_member',1) ); t=pre_common_member (DB::table とテーブルプレフィックスがデフォルトで実行されます)
%d=1 (intval がデフォルトで実行されます)


PHP の基盤を改善する必要があります...

次の配列はパラメータですfetch_first メソッドの配列内の値と、前の SQL ステートメントの %t、%d.. などのプレースホルダーは 1 対 1 に対応します。例: DB::fetch_first("SELECT * FROM. %t WHERE uid= %d",array('common_member',1));

%t=pre_common_member (DB::table とテーブル接頭辞がデフォルトで実行されます)

%d=1 (intval がデフォルトで実行されます) )

急に啓発された気がしました どうして関数だと気づかなかったのでしょう 関数なので当然パラメータも含まれています

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