簡單常用的有%u ,和%s,其中%u 是自然整數 ,包括0,1,2...
例如有一條 select * from users where user_id in (1,2,3,6,7);
而我們接受到的引數是乙個 陣列 [1,2,3,6,7];
我們可以這樣寫sql
<?php
$userids = [1,2,3,6,7];
$sql = sprintf("select * from users where user_id in (%s)",explode($userids));
echo $sql;die;
再舉個例子,比如乙個比較複雜的sql,日期如果在語句裡,可能拼接起來眼都花了,可以用 sprintf
<?php
$startdate = '1980-01-01';
$enddate = '2030-10-11';
$sql = sprintf("select relate_id as id ,title,max(a.created_at) last_report_time ,count(1) report_total_times from reports a
join archives b on a.relate_id = b.id where a.created_at > '%s' and a.created_at < '%s' and a.type = 'article' and is_handle = 0
group by relate_id order by report_total_times desc ,last_report_time desc ",$startdate,$enddate);
echo $sql;die;
php ,str_pad 這個函式可以拼接指定長度的字串。 平時看沒啥用,但是例如想格式化出時間為 00:00:00這樣,可以用
例如現在有個變數是3665秒,轉換為時分秒,可以這樣 (可能能夠省下寫一些if else 哦)
<?php
$duration = 3665; //秒
$hour = floor($duration/3600);
$minute = floor(($duration - 3600* $hour)/60);
$second = floor($duration%60);
$result = sprintf("%s:%s:%s",str_pad($hour,2,"0", str_pad_left),str_pad($minute,2,"0", str_pad_left),str_pad($second,2,"0", str_pad_left));
var_dump($result);
fgets函式 sprintf函式
char fgets char restrict s,int n,file restrict stream 第乙個引數為資料存放的陣列,第二個引數為最大長度,第三個引數為輸入源,我們從鍵盤讀入,引數為stdin 可以看到fgets 讀取的字串長度包含了結尾的 0 遍歷陣列時要注意下標越界。strle...
sprintf函式詳解
printf 可能是許多程式設計師在開始學習c 語言時接觸到的第二個函式 我猜第乙個是main 說 起來,自然是老朋友了,可是,你對這個老朋友了解多嗎?你對它的那個孿生兄弟sprintf 了解多 嗎?在將各種型別的資料構造成字串時,sprintf 的強大功能很少會讓你失望。由於sprintf 跟pr...
sprintf函式詳解
sprintf 將字串格式化。標頭檔案 include 語法 int sprintf string format,mixed args 返回值 字串長度 strlen 1.處理字元方向。負號時表時從後向前處理。2.填空字元。0 的話表示空格填 0 空格是內定值,表示空格就放著。3.字元總寬度。為最小...