-
- // 1. %%: %% を % に置き換えます
- $str = 'パラメータ %% をテストし、何に置き換えられるかを確認します';
- echo sprintf($str); result : % パラメータが何に置き換えられるかをテストします (%% は % に置き換えられます)
- // 2. %b: このパラメータは整数データのみを置き換えることができます。浮動小数点型の場合は、整数部分のみが置き換えられます。小数点以下のデータは無視されます。整数以外のデータの場合。 Return 0
- $str = 'パラメータ %b は 2 進数に置き換えられます';
- $arg = '10';
- echo sprintf($str,$arg);
- //戻り値: パラメータ 1010 は次のように置き換えられます。 2 進数
- $arg = 10.23;
- echo sprintf($str,$arg);
- //戻り値: パラメーター 1010 は 2 進数
- $arg = 'abc'; $arg);
- / /戻り値: パラメータ 0 は 2 進数に置き換えられます
- // 3. %c は文字エンコーディングの ASCII コードを返します
- $arg = 65;
- $str = "数値 {$arg} は %c";
- echo sprintf($str,$arg);
- //戻り結果: 数値 65 は ASCII コード A に対応します
-
- // 4. %d は a の %d を置き換えますint 型の文字の場合、データ要件は $b と同じです
- $str = 'ID 番号は %d ';
- echo sprintf($str,$arg); 結果を返します。 ID 番号は -3 です
- $arg = 4.5;
- echo sprintf ($str,$arg)
- //戻り値: ID 番号は 4 です
- $arg = 'abc'; ;
- //戻り結果: ID 番号は 0 です
-
- / / 5. %s - String
- $str = "これはテストに使用された sprintf 文字列 (%s) です。今日は %f 元を使いました。%d あります。鐘楼から小寨までの駅です。仕事に行きます";
- $ arg = '%s';
- echo sprintf($str,$arg,6,5);
- //返される結果: これは sprintf 文字列 (%s) ) テストに使用されます。今日は600万元使いました。鐘楼から小寨までは5駅です。作業に進みます
-
-
- コードをコピーします
-
-
パラメータの使用法については、次のテストを行ってください:
データ テーブル内のすべてのデータの複数のフィールドを更新する場合、循環更新が使用されると、ここで sprintf() 関数が使用されます。
データベースをバッチで更新する場合、一般に case then when end の構文が使用されます。たとえば、次のような基本構文です。
AUpdata テーブル フィールド = CASE ID を設定します 1 の場合は 'Value1' 2 の場合は 'Value2' 3 の場合は 'Value3' (1,2,3) の ID はどこですか
コードをコピーします
-
- このようにして、パラメータ上の関数は SQL ステートメントをそのような SQL ステートメントに結合します。バッチ更新を実行できる SQL は 1 つだけです
-
- 例:
-
-
-
-
//例えば、idに対応する値は以下の通りです array $info = array(1=>'張三',2=>'李思',3=>'王Wu'); $ids = implode(',',array_keys($info)) //すべての ID 文字列を取得 //複合 SQL $sql = "UPDATA user SET username = CASE id"; as $ id=>$username){ $sql .= sprintf("WHEN %d THEN %s",$id,$username); } $sql .= "END WHERE id IN ($ids)" ; // $model->query($sql)
- コードをコピー
-
-
- 上記によりバッチ更新操作を完了できます。ここで、where 句により 3 行のデータのみが実行されます。
-
-
-
-
-
-
-
|