❶ 該學習哪些PHP函數PHP常用函數
以下是記php的常用函數,網上轉載的:
php
//===============================時間日期===============================
//y返回年最後兩位,Y年四位數,m月份數字,M月份英文。d月份幾號數字,D星期幾英文
$date=date("Y-m-d");
$date=date("Y-m-d H:i:s");//帶時分秒
//include,include_once.require,require_once
//require("file.php") 在PHP程序執行前就會先讀入require所指定引進的文件,如出現錯誤是致命的。
//include("file.php") 可以放在PHP程序的任何位置,PHP程序執行到時才讀入include指定引入的文件,如出現錯誤會提示
//===============================輸出列印===============================
//sprintf("%d","3.2") ;//只格式化,返回格式化後的字元串,不輸出。
//printf("%d","3.2") ;//即格式化,又輸出
//print("3.2") ;//只輸出
//echo "nihao","aa";//可以輸出多個字元串
//print_r(array("a","b","c"));//將數組的鍵值與元素依次顯示
//===============================常用字元串函數===============================
//獲取字元串長度,有多少個字元,空格也算
$str=" sdaf sd ";
$len=strlen($str);
//用第一個參數里的字元串,把後面數組里的每個元素連接起來,返回一個字元串。
$str=implode("-",array("a","b","c"));
//字元串分割方法,返回一個數組,用第一個參數里的字元分割後面的字元串,指定字元的前後和之間都截取,如果指定字元在開頭或結尾則返回的數組開頭或結尾的元素為空字元串
//沒有分割到字元串就返回給數組對應元素一個空值。最後一個限制返回數組長度,可不限制,則一直分割下去。
$array=explode("a","asddad addsadassd dasdadfsdfasdaaa",4);
//print_r($array);
//剔除字元串左邊開頭的空格,並返回
//如有第二個參數則是剔除左邊開頭的空格換成剔除第二個參數里的字元串
$str=ltrim("a asd ","a");
//剔除字元串右邊開頭的空格
$str=rtrim(" asd ");
//把第一個字元串兩邊以第二個參數開頭的字元串剔除。如沒有第二個參數,默認剔除掉字元串兩邊開頭的空格
$str=trim(" sdsdfas ","a");
//從字元串第一個參數里的指定位置開始取多長(多少個)字元,字元串中第一個字元位置從0算。
//如果第二個參數為負則從字元串結尾倒數第幾個開始取多長的字元串。結尾最後一個字元算-1,截取方向總是從左到右
$str=substr("abcdefgh",0,4);
//將第三個參數的第一個參數字元串用參數二字元串替換
$str=str_replace("a","","abcabcAbca");
//與str_replace用法同,只是不區分大小寫
//$str=str_ireplace("a"," ","abcabcAbca");
//返回括弧里字元串的字元全部大寫的字元串
$str=strtoupper("sdaf");
//將括弧里第一個字元串變成大寫後返回
$str=ucfirst("asdf");
//用echo等將括弧里字元串列印在網頁上時原汁原味列印出括弧里的字元串,包括標簽字元
$str=htmlentities("
");
//返回第二個參數字元串在第一個字元串里出現的次數
$int=substr_count("abcdeabcdeablkabd","ab");
//返回第二個字元串在第一個字元串第一次出現的位置,第一個字元位置算0
$int=strpos("asagaab","ab");
//返回第二個字元串在第一個字元串最後一次出現的位置,第一個字元位置算0
$int=strrpos("asagaabadfab","ab");
//截取返回參數一中從左至右第一個出現的參數二到參數一最後一個字元的字元串
$str=strstr("sdafsdgaababdsfgs","ab");
//截取返回參數一中從左至右最後一個出現的參數二到參數一最後一個字元的字元串
$str=strrchr("sdafsdgaababdsfgs","ab");
//將參數二中每一個字元在參數一中相同字元前加"\"
$str=addcslashes("abcdefghijklmn","akd");
//將參數一的字元串填充到參數二指定的長度(單字元個數),參數三為指定填充的字元串,不寫默認空格
//參數四填充位置,0在參數一左側開頭填充,1右側開頭,2兩邊開頭同時。不寫默認在右側開頭填充
$str=str_pad("abcdefgh",10,"at",0);
//依次比較兩字元串對應字元阿斯克碼值,第一對不一樣的,如果參數一里大於參數二里的返回1,反之返回-1,兩字元串完全一樣返回0
$int1=strcmp("b","a");
//返回第一個參數格式化後的數字格式,第二個參數為保留幾個小數,參數三為將小數點換成參數三,參數四為整數部分每三位用什麼字元分割
//後面三個參數都不寫,則默認去掉小數部分,整數每隔三位用逗號,分割。參數三,參數四必須同時存在
$str=number_format(1231233.1415,2,"d","a");
//===============================常用數組方法===============================
$arr=array("k0"=>"a","k1"=>"b","k2"=>"c");
//返回數組元素個數
$int=count($arr);
//判斷第二參數的數組元素中是否有第一個參數元素
$bool=in_array("b",$arr);
//返回括弧中數組所有鍵值組成的新數組原數組不改變
$array=array_keys($arr);
//判斷第二個參數的數組中是否有第一個參數的鍵值,返回真假
$bool=array_key_exists("k1",$arr);
//返回原數組中所有元素值組成的新數組,鍵值從0開始自增,原數組不變
$array=array_values($arr);
//返回當前數組指針指向的鍵值
$key=key($arr);
//返回當前數組指針指向的元素值
$value=current($arr);
//返回當前數組指針指向元素的鍵值及元素值組成的數組,再將指針推向下一位,最後指針指向的是一個空元素返回空
//返回的數組中有四個固定鍵值對應的元素值分別是返回元素的鍵值及元素值,其中0,'key'鍵值都對應返回元素鍵值,1,'value'鍵值都對應返回的元素值
$array=each($arr);
//先將數組指針推向下一位,再返回指針移動後指向的元素值
$value=next($arr);
//將數組指針推向上一位,再返回指針移動後指向的元素值
$value=prev($arr);
//讓數組指針重置指向第一個元素並返回元素值
$value=reset($arr);
//將數組指針指向最後一位元素,並返回最後一位元素值
$value=end($arr);
//將第一個參數以後的參數作為元素追加入第一個參數數組的末尾,索引從最小的沒用過的數值開始計,返回之後的數組長度
$int=array_push($arr,"d","dfsd");
//將第一個參數數組後面所有參數作為元素添加到第一個參數數組開頭處,鍵值以0從第一個元素處重新累加,原非數值的鍵值保持不變,原元素排序位置不變,返回之後的數組長度
$int=array_unshift($arr,"t1","t2");
//返回從數組尾部提取最後一個元素值,並把最後一個元素從原數組中剔除
$value=array_pop($arr);
//array_pop相反,提取返回數組頭一個元素值,並把頭一個元素從原數組中剔除
$value=array_shift($arr);
//讓第一個參數數組達到第二個參數數值長度,將第三個參數作為元素添加到第一個參數數組的末尾,索引從最小沒用過數值開始計並返回,原數組不改變
$array1=array_pad($arr,10,"t10");
//返回一個將原數組中多餘重復元素剔除掉的新數組,原數組不改變
$array=array_unique($array1);
//將原數組鍵值打破重新以元素值的阿斯克碼值從小到大排序,索引從數字0開始重計
$int=sort($array);
//和sort相反,以元素值阿斯柯碼值大小降序重新排序,索引從0重新計
$int=rsort($array);
//返回將第一個參數數組中每一個元素值依次作為鍵值付給參數二數組的數組,兩數組長度必須一致,原數組不改變
$array=array_combine(array("a","b","c","d","e"),$arr);
//將兩個數組合並並返回原數組不變
$array=array_merge($arr,array("a","b","c"));
//在第一個參數數組中從第二個參數數值位置開始截取到第三個參數數值長度的數組鍵值+元素並返回,數組第一個元素位置從0計
$array=array_slice($arr,2,1);
//截取功能和array_slice()一樣,只是將截取部分在原數組中剔除
$array=array_splice($arr,2,1);
//將第一個參數作為第一個元素,每次自增參數三的值,自增後再作為一個元素存在數組中,直到值達到參數二的值存到數組中為止並返回這個數組
//參數一,參數二可以是數字,可以是單個字元,單字元就按阿斯柯碼值算,第三個參數不寫默認每次自增1
$array=range(3,9,2);
//將原數組元素與對應鍵值的對應關系重新隨機排列返回真假
$bool=shuffle($arr);
//計算數組中所有數值型元素值的和
$int=array_sum(array("a",2,"cssf"));
//把一個數組分割為新的數組塊,新數組每個元素都是一個數組,新數組每個元素內有幾個元素由參數二決定
//第三個參數決定元素的鍵值是否保留原鍵值可不寫,true為保留,默認false不保留
$array=array_chunk(array("a"=>"a","b","c","d","e","f","g","h"),2,true);
//json_encode()將數組轉換成JSON格式字元串返回
$arr = array('k1'=>'val1','k2'=>'val2','k3'=>array('v3','v4'));
echo $encode_str = json_encode($arr);
//json_decode()將JSON格式字元串轉換成能強制轉換成數組的對象返回,JSON格式字元串中鍵與值需要引號括起來時必須用雙引號
$decode_arr = (array)json_decode($encode_str);
var_mp($decode_arr);
?>
❷ 如何正確理解PHP獲取顯示資料庫數據函數
1、PHP獲取顯示資料庫數據函數之 mysql_result()
mixed mysql_result(resource result_set, int row [,mixed field])
從result_set 的指定row 中獲取一個field 的數據. 簡單但是效率低.
舉例:
$link1 = @mysql_connect("server1",
"webuser", "password")
or die("Could not connect
to mysql server!");
@mysql_select_db("company")
or die("Could not select database!");
$query = "select id, name
from proct order by name";
$result = mysql_query($query);
$id = mysql_result($result, 0, "id");
$name = mysql_result($result, 0, "name");
mysql_close();
注意,上述代碼只是輸出結果集中的第一條數據的欄位值,如果要輸出所有記錄,需要循環處理.
for ($i = 0; $i <= mysql_num_rows($result); $i++)
{
$id = mysql_result($result, 0, "id");
$name = mysql_result($result, 0, "name");
echo "Proct: $name ($id)";
}
注意,如果查詢欄位名是別名,則mysql_result中就使用別名.
2、PHP獲取顯示資料庫數據函數之mysql_fetch_row()
array mysql_fetch_row(resource result_set)
從result_set中獲取整行,把數據放入數組中.
舉例(注意和list 的巧妙配合):
$query = "select id,
name from proct order by name";
$result = mysql_query($query);
while(list($id, $name)
= mysql_fetch_row($result)) {
echo "Proct: $name ($id)";
}
3、PHP獲取顯示資料庫數據函數之mysql_fetch_array()
array mysql_fetch_array(resource result_set [,int result_type])
mysql_fetch_row()的增強版.
將result_set的每一行獲取為一個關聯數組或/和數值索引數組.
默認獲取兩種數組,result_type可以設置:
MYSQL_ASSOC:返回關聯數組,欄位名=>欄位值
MYSQL_NUM:返回數值索引數組.
MYSQL_BOTH:獲取兩種數組.因此每個欄位可以按索引偏移引用,也可以按欄位名引用.
舉例:
$query = "select id,
name from proct order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array
($result, MYSQL_BOTH)) {
$name = $row['name'];
//或者 $name = $row[1];
$name = $row['id'];
//或者 $name = $row[0];
echo "Proct: $name ($id)";
}
4、PHP獲取顯示資料庫數據函數之mysql_fetch_assoc()
array mysql_fetch_assoc(resource result_set)
相當於 mysql_fetch_array($result, MYSQL_ASSOC)
5、PHP獲取顯示資料庫數據函數之mysql_fetch_object()
object mysql_fetch_object(resource result_set)
和mysql_fetch_array()功能一樣,不過返回的不是數組,而是一個對象.
舉例:
$query = "select id, name
from proct order by name";
$result = mysql_query($query);
while($row = mysql_fetch_object
($result)) {
$name = $row->name;
$name = $row->id;
echo "Proct: $name ($id)";
}
以上這些函數就是PHP獲取顯示資料庫數據函數的全部總結。
❸ thinkphp對資料庫操作有哪些內置函數
8.4.4 Model類
getModelName() 獲取當前Model的名稱
getTableName() 獲取當前Model的數據表名稱
switchModel(type,vars=array()) 動態切換模型
table() 設置當前操作的數據表
field() 設置要查詢的數據欄位
where() 設置查詢或者操作條件
data(data) 設置數據對象
order(order) 設置排序
limit(limit) 查詢限制
page(page) 查詢分頁
join(join) 進行JOIN查詢
having(having) 進行having查詢
group(group) 進行group查詢
lock(lock) 查詢鎖定
distinct(distinct) 唯一性查詢
count(field) 記錄統計
sum(field) 總數查詢
min(field) 最小值查詢
max(field) 最大值查詢
avg(field) 平均值查詢
_initialize() 模型初始化方法
_facade(data) 對保存到資料庫的數據進行處理
_before_write(&data) 寫入數據前的回調方法 包括新增和更新
add(data='',options=array()) 新增數據
_before_insert(&data,options) 寫入數據前的回調方法
_after_insert(data,options) 寫入數據後的回調方法
selectAdd(fields='',table='',options=array()) 通過Select方式添加記錄
save(data='',options=array()) 更新數據到資料庫
_before_update(&data,options) 更新數據前的回調方法
_after_update(data,options) 更新成功後的回調方法
delete(options=array()) 刪除數據
_after_delete(data,options) 刪除成功後的回調方法
select(options=array()) 查詢數據集
_after_select(&resultSet,options) 查詢成功後的回調方法
findAll(options=array()) select方法的別名
_options_filter(&options) 表達式過濾回調方法
find(options=array()) 查詢數據
_after_find(&result,options) 查詢成功的回調方法
setField(field,value,condition='') 設置記錄的某個欄位值
setInc(field,condition='',step=1) 欄位值增長
setDec(field,condition='',step=1) 欄位值減少
getField(field,condition='',sepa=' ') 獲取某個欄位值
create(data='',type='') 創建數據對象
autoCheckToken(data) 表單令牌驗證
query(sql) 執行原生SQL查詢
execute(sql='') 執行原生SQL操作
startTrans() 啟動事務
commit() 提交事務
rollback() 事務回滾
getError() 獲取模型的錯誤信息
getDbError() 獲取資料庫的錯誤信息
getLastInsID() 獲取最後執行的SQL語句
getPk() 獲取主鍵名稱
getDbFields() 獲取數據表的欄位信息
regex(value,rule) 使用正則驗證數據
setProperty(name,value) 設置模型的屬性值
2.1版新增方法:
db(linkNum,config='') 切換當前資料庫連接
高級模型類AdvModel
topN(count,options=array()) 查詢滿足條件的前N個記錄
getN(position=0,options=array()) 查詢符合條件的第N條記錄
0 表示第一條記錄 -1 表示最後一條記錄
first(options=array()) 獲取滿足條件的第一條記錄
last(options=array()) 獲取滿足條件的最後一條記錄
returnResult(data,type='') 返回指定的數據類型
setLazyInc(field,condition='',step=1,lazyTime=0) 欄位值延遲增長
setLazyDec(field,condition='',step=1,lazyTime=0) 欄位值延遲減少
addConnect(config,linkNum=NULL) 增加資料庫連接
delConnect(linkNum) 刪除資料庫連接
closeConnect(linkNum) 關閉資料庫連接
switchConnect(linkNum,name='') 切換資料庫連接
patchQuery(sql=array()) 批處理執行SQL語句
getPartitionTableName(data=array()) 得到分表的的數據表名