零:重要的PHP超級全局變量php
一、$_SERVERhtml
$_SERVER超級全局變量包含由web服務器建立的信息,它提供了服務器和客戶配置及當前請求環境的有關信息。根據服務器不一樣,$_SERVER中的變量值和變量個數會有差異,不過通常均可以找到CGI1.1規範中定義的變量。其中包括:mysql
$_SERVER[ 'HTTP_REFERER' ] ; 引導用戶到達當前位置的頁面的URL ;web
$_SERVER[ 'REMOTE_ADDR‘ ] ; 客戶IP地址 ;正則表達式
$_SERVER[ ’REQUEST_URI‘ ] ; URL的路徑部分。若是URL是[url]http://www.example.com/blog/apache/index.html[/url] ,那麼URI就是/blog/apache/index.html 。sql
$_SERVER[ 'HTTP_USER_AGENT' ] ; 客戶的用戶代理,通常會提供操做系統和瀏覽器的有關信息。shell
二、$_GET數據庫
$_GET超級全局變量包含使用GET方法傳遞的參數的有關信息。若是請求URL爲[url]http://www.example.com/index.html?cat=apache&id=157[/url], 就可使用$_GET超級全局變量訪問以下變量:apache
$_GET[ 'cat' ] = "apache" ;數組
$_GET[ 'id' ] = "157" ;
默認狀況下,要訪問通GET方法傳遞的變量,$_GET超級全局變量是惟一的途徑。
三、$_POST
$_POST超級全局變量包含用POST方法傳遞的參數的有關信息。
<form caction="subscribe.php" method = "post">
<p>
Email address : <br>
<input type="text" name="email" size="20" maxlength="so" value="">
</p>
<p>
Password : <br>
<input type="password" name="pswd" size="20" maxlength="15" value="">
</p>
<p>
<input type="submit" name="subscribe" value="subscribe!">
</p>
</form>
經過腳本subscribe.php,就可使用下面的POST變量:
$_POST[ 'email' ] = " jason@example.com " ;
$_POST[ 'pswd' ] = "rainyday" ;
$_POST[ 'subscribe' ] = "subscribe!" ;
與$_GET同樣,在默認狀況下,$_POST超級全局變量是訪問POST變量的惟一途徑。
四、$_COOKIE
$_COOKIE超級全局變量存儲了經過HTTP cookie傳遞到腳本的信息。這些cookie通常是由之前執行的PHP腳本經過PHP函數setcookie ( ) 設置的。例如,假設使用 setcookie ( )存儲了一個名爲 example.com、值爲ab2213的cookie。之後就能夠經過調用$_COOKIE[ ' example.com' ]來得到這個值。
五、$_FILES
$_FILES超級全局變量包含經過POST方法向服務器上傳的數據的有關信息。這個超級全局變量與其餘的變量有所不一樣,它是一個二維數組,包含5個元素。第一個下標標示表單的文件上傳元素名;第二個下標是五個預約義下標之一,這些下標描述了上傳文件的某個屬性:
△ $_FILES[ 'upload-name' ][ 'name' ]; 從客戶端向服務器上傳文件的文件名;
△ $_FILES[ 'upload-name' ][ 'type' ]; 上傳文件的MIME類型,這個變量是否賦值取決於瀏覽器的功能。
△ $_FILES[ 'upload-name' ][ 'size' ]; 上傳文件的大小(以字節爲單位);
△ $_FILES[ 'upload-name' ][ 'tmp_name' ]; 上傳以後,將此文件移到最終位置以前賦予的臨時名。
△ $_FILES[ 'upload-name' ][ 'error' ]; 上傳狀態碼。儘管這個變量的名爲 error ,但實際上在成功的狀況下也會填寫這個變量。它有五個可能的值:
■ UPLOAD_ERR_OK 文件成功上傳
■ UPLOAD_ERR_INI_SIZE 文件大小超出了 upload_max_filesize 指令所指定的最大值。
■ UPLOAD_ERR_FORM_SIZE 文件大小超出了MAX_FILE_SIZE 隱藏表單域參數(可選)指定的最大值。
■ UPLOAD_ERR_PARTIAL 文件只上傳了一部分
■ UPLOAD_ERR_NO_FILE 上傳表單中沒有指定文件
六、$_ENV
$_ENV超級全局變量提供PHP解析所在服務器環境的有關信息。此數組中的變量包括:
△ $_ENV[ 'HOSTNAME' ] 服務器的主機名
△ $_ENV[ 'SHELL' ] 系統 shell
七、$_REQUEST
$_REQUEST超級全局變量是一個全能選手,它記錄了經過各類方法傳遞給腳本的變量,特別是GET ,POST 和 COOKIE 。 這些變量的順序不依賴於它們在發送腳本中出現的順序,而是依賴於 variables_order 配置指令所指定的順序。建議少用這個超級變量,由於它不夠安全。
八、$_SESSION
$_SESSION 超級全局變量包含與全部會話有關的信息。註冊會話信息能爲你提供便利,這樣就能在整個網站中引用這些會話信息,而無需經過GET或POST顯示的傳遞數據。
九、$GLOBALS
$GLOBALS 超級全局變量數組能夠認爲是超級全局變量的超集,包含全局做用域內的全部變量。執行下面的代碼能夠查看$GLOBALS 中全部的變量。
print ' <pre>' ;
print_r ($GLOBALS);
print ' </pre>' ;
一 :php處理字符串經常使用函數
1查找字符位置函數:
strpos($str,search,[int]):查找search在$str中的第一次位置從int開始;
stripos($str,search,[int]):函數返回字符串在另外一個字符串中第一次出現的位置。該函數對大小寫不敏感
strrpos($str,search,[int]):查找search在$str中的最後一次出現的位置從int開始
strripos($str,search,[int]):同上,該函數對大小寫不敏感
二、提取子字符串函數(雙字節)
substr($str,int start[,int length]):從$str中strat【下標(0,length-1)】位置開始提取[length長度的字符串]。
strstr($str1,$str2):從$str1(第一個的位置)搜索$str2並從它開始截取到結束字符串;若沒有則返回FALSE。
stristr() 功能同strstr,只是不區分大小寫。
strrchr() 從最後一次搜索到的字符處返回;用處:取路徑中文件名
三、替換字符串的PHP字符串函數
str_replace(search,replace,$str):從$str中查找search用replace來替換
str_ireplace(search,replace,$str):同上,該函數對大小寫不敏感
strtr($str,search,replace):這個函數中replace不能爲"";
substr_replace($Str,$rep,$start[,length]):$str原始字符串,$rep替換後的新字符串,$start起始位置,$length替換的長度,該項可選
四、字符長度
int strlen($str)
五、比較字符函數
int strcmp($str1,$str2):$str1>=<$str2分別爲正1,0,-1(字符串比較)
strcasecmp() 同上(不分大小寫)
strnatcmp("4","14") 按天然排序比較字符串
strnatcasecmp() 同上,(區分大小寫)
六、分割成數組的PHP字符串函數
str_split($str,len):把$str按len長度進行分割返回數組
split(search,$str[,int]):把$str按search字符進行分割返回數組int是分割幾回,後面的將不分割
expload(search,$str[,int])
七、去除空格:
ltrim()、rtrim()、trim()
八、加空格函數
chunk_split($str,2):向$str字符裏面按2個字符就加入一個空格;
九、chr、ord--返回指定的字符或ascii
十、HTML代碼有關函數
nl2br():使\n轉換爲<br>。
strip_tags($str[,'<p>']):去除HTML和PHP標記
在$str中全部HTML和PHP代碼將被去除,可選參數爲html和PHP代碼做用是將保留
可選參數所寫的代碼。
如:echo strip_tags($text, '<br><p>');
htmlspecialchars($str[,參數]):頁面正常輸出HTML代碼參數,是轉換方式
十一、字符大小寫轉換的PHP字符串函數
strtolower($str): 字符串轉換爲小寫
strtoupper($str): 字符串轉換爲大寫
ucfirst($str): 將函數的第一個字符轉換爲大寫
ucwords($str): 將每一個單詞的首字母轉換爲大寫
十二、數據庫相關的PHP字符串函數
addslashes($str):使str內單引號(')、雙引號(")、反斜線(\)與 NUL
字符串轉換爲\',\",\\。
magic_quotes_gpc = On :自動對 get,post,cookie的內容進行轉義
get_magic_quotes_gpc():檢測是否打開magic_quotes_gpc
stripslashes(): 去除字符串中的反斜槓
13 肯定字符串長度
* int strlen(string str)
14 比較兩個字符串
* 1、strcmp函數對兩個字符串進行二進制安全的比較,並區分大小寫
* int strcmp(string str1,string str2)
* 2、以不區分大小寫的方式比較兩個字符串
* int strcasecmp(string str1,string str2)
* 3、求兩個字符串相同部分
* int strspn(string str1,string str2)
* 4、求兩個字符串的不一樣部分
* int strcspn(string str1,string str2)
15 處理字符串大小寫
* 1、將字符串所有轉換爲小寫
* string strtolower(string str)
* 2、將字符串所有轉化爲大寫
* string strtoupper(string str)
* 3、將字符串第一個字符大寫
* string ucfirst(string str)
* 4、將字符串中的每一個單詞變成大寫
* string ucword(string str)
16 字符串與HTML相互轉換
* 1、將換行符轉換爲HTML終止標記
* string bl2br(string str)
* 2、將特殊字符轉換wieldHTML等價形式
* string htmlentities(string str[,int quote_style[,int charset]])
* 3、使用特殊的HTML字符用於其餘目的
* string htmlspecialchars(string str[,int quote_style[,string charset]])
* 4、將文本轉換爲HTML等價形式
* array get_html_translaction_table(int table[,int quote_style])
* 5、建立一個自定義的轉換清單
* string strtr(string str,array replacements)
* 6、將HTML轉換爲純文本
* string strip_tags(string str[,string allowable_tags])
17 正則表達式函數的替代函數
* 1、strtok函數根據預約義的字符串列表來解析字符串
* string strtok(string str,string tonens)
* 2、根據預約義的定界符分析字符串
* array explode(string separator,string str[,int limit])
* 3、將數組轉換爲字符串
* string implode(string delimiter, array array)
* 4、解析複雜的字符串
* int strpos(string str,string substr[,int offset])
* 5、找到字符串的最後一次出現
* int strrpos(string str,char substr[,offset])
* 6、用另一個字符串替代字符串的全部實例
* mixed str_replace(string occurrence,mixed replacement,mixed str[,int count])
* 7、獲取字符串的一部分strstr返回字符串中預約義字符串第一次出現開始的剩餘部分
* string strstr(string str,string occurrence)
* 8、根據預約義的偏移返回字符串一部分
* string substr(string str,int start[,ing length])
* 9、肯定字符串出現的頻率
* int substr_count(string str,string substring)
* 10、用另外一個字符串替換一個字符串的一部分
* string substr_replace(string str,string replacement,int start[,int length])
18 填充和剔除字符串
* 1、從字符串開始出裁剪字符
* string ltrim(string str[,string charliset])
* 2、從字符串結尾裁剪字符
* string rtrim(string str[,string charliset])
* 3、從字符串兩端裁剪字符
* string trim(string str[,string charliset])
* 4、填充字符串
* string str_pad(string str,int length[,string pad_string[,int pad_type]])
19字符和單詞計數
* 1、字符串中字符計數
* mixed count_chars(string str[,mode])
* 2、字符串中單詞總數計數
* mixed str_word_count(string str[,int format])
三 php時間函數
1,年-月-日
echo date('Y-m-j');
2009-05-29
echo date('y-n-j');
09-2-29
大寫Y表示年四位數字,而小寫y表示年的兩位數字;
小寫m表示月份的數字(帶前導),而小寫n則表示不帶前導的月份數字。
echo date('Y-M-j');
2009-May-6
echo date('Y-m-d');
2009-05-06
大寫M表示月份的3個縮寫字符,而小寫m則表示月份的數字(帶前導0);
沒有大寫的J,只有小寫j表示月份的日期,無前導o;若須要月份帶前導則使用小寫d。
echo date('Y-M-j');
2009-Feb-6
echo date('Y-F-jS');
2009-February-6th
大寫M表示月份的3個縮寫字符,而大寫F表示月份的英文全寫。(沒有小寫f)
大寫S表示日期的後綴,好比「st」、「nd」、「rd」和「th」,具體看日期數字爲什麼。
小結:
表示年能夠用大寫的Y和小寫y;
表示月能夠用大寫F、大寫M、小寫m和小寫n(分別表示字符和數字的兩種方式);
表示日能夠用小寫d和小寫j,大寫S表示日期的後綴。
2,時:分:秒
默認狀況下,PHP解釋顯示的時間爲「格林威治標準時間」,與咱們本地的時間相差8個小時。
echo date('g:i:s a');
5:56:57 am
echo date('h:i:s A');
05:56:57 AM
小寫g表示12小時制,無前導0,而小寫h則表示有前導0的12小時制。
當使用12小時制時須要代表上下午,小寫a表示小寫的「am」和「pm」,大寫A表示大寫的「AM」和「PM」。
echo date('G:i:s');
14:02:26
大寫G表示24小時制的小時數,可是不帶前導的;使用大寫的H表示帶前導的24小時制小時數
小結:
字母g表示小時不帶前導,字母h表示小時帶前導;
小寫g、h表示12小時制,大寫G、H表示24小時制。
3,閏年、星期、天
echo date('L');
今年是否閏年:0
echo date('l');
今天是:Tuesday
echo date('D');
今天是:Tue
大寫L表示判斷今年是否閏年,布爾值,爲真返回1,不然爲0;
小寫l表示當天是星期幾的英文全寫(Tuesday);
而使用大寫D表示星期幾的3個字符縮寫(Tue)。
echo date('w');
今天星期:2
echo date('W');
本週是整年中的第 06 周
小寫w表示星期幾,數字形式表示
大寫W表示一年中的星期數
echo date('t');
本月是 28 天
echo date('z');
今天是今年的第 36 天
小寫t表示當前月份又多少天
小寫z表示今天是本年中第幾天
4,其餘
echo date('T');
UTC
大寫T表示服務器的時間區域設置
echo date('I');
0
大寫I表示判斷當前是否爲夏令時,爲真返回1,不然爲0
echo date('U');
1170769424
大寫U表示從1970年1月1日到如今的總秒數,就是Unix時間紀元的UNIX時間戳。
echo date('c');
2007-02-06T14:24:43+00:00
小寫c表示ISO8601日期,日期格式爲YYYY-MM-DD,用字母T來間隔日期和時間,時間格式爲HH:MM:SS,時區使用格林威治標準時間(GMT)的誤差來表示。
echo date('r');
Tue, 06 Feb 2009 14:25:52 +0000
小寫r表示RFC822日期。
四文件即目錄的操做
1 得到文件名:
basename();
給出一個包含有指向一個文件的全路徑的字符串,本函數返回基本的文件名。若是文件名是以 suffix 結束的,那這一部分也會被去掉。
eg:
2 獲得目錄部分:
dirname();
給出一個包含有指向一個文件的全路徑的字符串,本函數返回去掉文件名後的目錄名。
eg:
3 獲得路徑關聯數組
pathinfo();
獲得一個指定路徑中的三個部分:目錄名,基本名,擴展名。
eg:
文件類型
1. filetype();
返回文件的類型。可能的值有 fifo,char,dir,block,link,file 和 unknown。
eg:
獲得給定文件有用信息數組(頗有用)
1. fstat();
經過已打開的文件指針取得文件信息
獲取由文件指針 handle 所打開文件的統計信息。本函數和 stat() 函數類似,除了它是做用於已打開的文件指針而不是文件名。
eg:
2. stat()
獲取由 filename 指定的文件的統計信息(類比fstat())
計算大小
1. filesize()
返回文件大小的字節數,若是出錯返回 FALSE 並生成一條 E_WARNING 級的錯誤。
eg:
2. disk_free_space()
得到目錄所在磁盤分區的可用空間(字節單位)
eg
3. disk_total_space()
返回一個目錄的磁盤總大小
eg:(同上,換掉函數)
另:如須要計算一個目錄大小,能夠編寫一個遞歸函數來實現
訪問與修改時間
1. fileatime(): 最後訪問時間
2. filectime(): 最後改變時間(任何數據的修改)
3. filemtime(): 最後修改時間(指僅是內容修改)
文件的I/O操做
1. fopen -- 打開文件或者 URL
mode 說明
'r' 只讀方式打開,將文件指針指向文件頭。
'r+' 讀寫方式打開,將文件指針指向文件頭。
'w' 寫入方式打開,將文件指針指向文件頭並將文件大小截爲零。若是文件不存在則嘗試建立之。
'w+' 讀寫方式打開,將文件指針指向文件頭並將文件大小截爲零。若是文件不存在則嘗試建立之。
'a' 寫入方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立之。
'a+' 讀寫方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立之。
'x' 建立並以寫入方式打開,將文件指針指向文件頭。若是文件已存在,則 fopen() 調用失敗並返回 FALSE,
'x+' 建立並以讀寫方式打開,將文件指針指向文件頭。若是文件已存在,則 fopen() 調用失敗並返回 FALSE
eg:
2. file -- 把整個文件讀入一個數組中(此函數是頗有用的)
和 file_get_contents() 同樣,只除了 file() 將文件做爲一個數組返回。數組中的每一個單元都是文件中相應的一行,包括換行符在內。若是失敗 file() 返回 FALSE。
eg:
3. fgets -- 從文件指針中讀取一行
從 handle 指向的文件中讀取一行並返回長度最多爲 length - 1 字節的字符串。碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 字節後中止(看先碰到那一種狀況)。若是沒有指定 length,則默認爲 1K,或者說 1024 字節。
eg:
4. fgetss -- 從文件指針中讀取一行並過濾掉 HTML 標記
和 fgets() 相同,只除了 fgetss 嘗試從讀取的文本中去掉任何 HTML 和 PHP 標記。
能夠用可選的第三個參數指定哪些標記不被去掉
另:對的目錄的操做:
1. opendir -- 打開目錄句柄,打開一個目錄句柄,可用於以後的 closedir(),readdir() 和 rewinddir() 調用中。
2. readdir -- 從目錄句柄中讀取條目,返回目錄中下一個文件的文件名。文件名以在文件系統中的排序返回。
eg:
3. scandir -- 列出指定路徑中的文件和目錄(頗有用),返回一個 array,包含有 directory 中的文件和目錄。
默認的排序順序是按字母升序排列。若是使用了可選參數 sorting_order(設爲 1),則排序順序是按字母降序排列。
eg:
另外注:
對文件屬性的操做(操做系統環境不一樣,可能有所不同,這點要注意)
1文件是否可讀:
boolis_readable ( string filename )
若是由 filename
指定的文件或目錄存在而且可讀則返回 TRUE。
記住 PHP 也許只能以運行 webserver 的用戶名(一般爲 'nobody')來訪問文件。不計入安全模式的限制。
2 文件是否可寫
bool is_writable ( string filename )
若是文件存在而且可寫則返回 TRUE。filename
參數能夠是一個容許進行是否可寫檢查的目錄名。
記住 PHP 也許只能以運行 webserver 的用戶名(一般爲 'nobody')來訪問文件。不計入安全模式的限制
3 檢查文件是否存在
boolfile_exists ( string filename )
若是由 filename
指定的文件或目錄存在則返回 TRUE,不然返回 FALSE
目錄的操做
四: php經常使用到的sql語句
常規查詢
1、查詢表內容:
select * from `tablename`
select `nicheng` from `tablename`
select distinct `nicheng` from `tablename`
2、where查詢:
select `id` from `tablename` where `id`>10 or (`id`<5)
3、in用法:
select * from `tablename` where `nicheng` in ('蕭明', '秦城')
4、between用法:
select * from `tablename` where `id` between '003' and '009'
5、排序查詢(ASC由小往大/DESC由大往小):
select id , mima from `tablename`
where `nicheng`='蕭明'
order by `id` ASC
limit 0 , 30
6、查詢表中數據項數:
select count(*) from `tablename`
7、查詢字段中內容數量:
select `nicheng`, count(*) from `tablename` group by `nicheng`
模糊查詢
SQL的模式匹配容許使用「_」匹配任何單個字符,而「%」匹配任意數目字符(包括零個字符):
1、查詢以「蕭」開頭的數據:
select * from `tablename` where `nicheng` like "蕭%"
2、查詢以「城」結尾的數據:
select * from `tablename` where `nicheng` like "%城"
3、查詢包含一個「敬」的數據:
select * from `tablename` where `nicheng` like "%敬%"
4、查詢正好包含3個字符的名字,使用「_」模式字符:
select * from `tablename` where `nicheng` like "___"
正則表達式查詢:
5、查詢以z或Z開頭的數據:
select * from `tablename` where `nicheng` regexp "^[zZ]"
select * from `tablename` where `nicheng` regexp "^[a-zA-Z]"
6、查詢以g或G結尾的數據:
select * from `tablename` where `nicheng` regexp "g$"
多表查詢:
1、多表查詢:
$sql=mysql_query("select * from `tb_student`,`tb_sscore` where tb_=tb_ and tb_=$sno",$conn);
2、表的別名查詢統計:
$sql=mysql_query("select * from `tb_student` as tb_s,`tb_sscore` as tb_c where tb_=tb_ and tb_=$sno",$conn);
3、合併結果集:
$sql=mysql_query("select `userid`,`username`,`sex`,`age` from `tb_worker1` union select `ygid`,`name`,`sex`,`age` from `tb_worker2`",$conn);
聯合查詢:
1、多表聯合查詢:
$sql=mysql_query("
select * from `tablename` where `nicheng` like "%敬%"
union
select * from `info` where `nicheng` like "張%"",$conn);
2、聯合查詢結果排序:
$sql=mysql_query("select * from `tb_1` union all select * from `tb_2` order by `age` desc",$conn);
3、條件聯合查詢:
$sql=mysql_query("select `pubname` from `tb_pub` group by `pubname` having `pubname`='人民郵電出版社' or `pubname`='機械工業出版社' union all select `pubname` from `tb_pub` group by `pubname` having `pubname`<>'人民郵電出版社' and `pubname`<>'機械工業出版社'",$conn);
SELECT t1 . * , ,
FROM uchome_tagspace t1
LEFT JOIN uchome_mtag t2 ON =
WHERE =1
多表查詢
1、簡約嵌套查詢:
$sql=mysql_query("select * from `tb_student_score_info` where `sid` in (select `sid` from `tb_student_info` where `sid`=$sno)",$conn);
2、複雜嵌套查詢:
$sql=mysql_query("select * from `tb_laborage` where `name` in (select `name` from `tb_dept` where `name` in (select `name` from `tb_personnel` where `knowledge`='本科'))",$conn);
3、嵌套查詢應用:
$sql=mysql_query("select * from `tb_laborage` where `jbgz` ".$_POST[tj]." any(select `jbgz` from `tb_laborage` where name='".$_POST[name]."')",$conn);
4、IN子查詢:
一、限定範圍查詢:
$sql=mysql_query("select * from `tb_student_score` where `sid` in (select `sid` from `tb_student_score` where `sid` between $from and $to) ",$conn);
二、查詢記錄信息:
$sql=mysql_query("select * from `tb_bookinfo` where `bookname` in (select `bookname` from `tb_bookinfo` where `bookname` like '%$bookname%') ",$conn);
排序分組
1、對數據進行降序查詢:
$sql=mysql_query("select * from `tb_sp` order by `sl` desc",$conn);
2、對數據進行多條件排序查詢:
$sql=mysql_query("select * from `tb_goods` order by `sl` desc,dj asc",$conn);
3、對統計結果進行排序:
$sql=mysql_query("select *,sum(num) as totalnum from `tb_bookinfo` group by `bookname` order by `totalnum` desc",$conn);
4、單列數據分組統計:
$sql=mysql_query("select *,sum(num) as totalnum from `tb_bookinfo` group by `bookname` order by `totalnum` desc",$conn);
5、多列數據分組統計:
$sql=mysql_query("select *,sum(xcsl) as xc,sum(x ssl) as xs from `tb_book1` group by `bookname` ",$conn);
6、多表分組統計:
$sql=mysql_query("select *,sum(tb_xs.x ssl) as xsl,sum(tb_) as kcl from `tb_bk`,`tb_xs` where tb_=tb_ group by `bookname` ",$conn);
彙集函數
1、彙總統計查詢:
$sql=mysql_query("select sum(yy) as sumyy,sum(yw) as sumyw,sum(sx) as sumsx,sum(ls) as sumls from `tb_student_score` ",$conn);
2、均值統計查詢:
$sql=mysql_query("select avg(yy) as avgyy,avg(yw) as avgyw,avg(sx) as avgsx,avg(ls) as avgls from `tb_student_score` ",$conn);
3、最小值統計查詢:
$sql=mysql_query("select * from `tb_gemsell` where `outprice-inprice` in (select min(`outprice-inprice`) as minsell from `tb_gemsell`) ",$conn);
4、最大值統計查詢:
$sql=mysql_query("select * from `tb_sale` where `sale` in (select max(sale) from `tb_sale` where month(xdate)=$yue and year(xdate)=2005)",$conn);
5、統計大於某值記錄:
$sql=mysql_query("select count(*) as total from `tb_sale` where `sale`>$num",$conn);
一、mysql_connect()-創建數據庫鏈接
格式:
resource mysql_connect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])
例:
$conn = @mysql_connect("localhost", "username", "password") or die("不能鏈接到Mysql Server");
說明:使用該鏈接必須顯示的關閉鏈接
二、mysql_pconnect()-創建數據庫鏈接
格式:
resource mysql_pconnect([string hostname [:port] [:/path/to/socket] [, string username] [, string password]])
例:
$conn = @mysql_pconnect("localhost", "username", "password") or dir("不能鏈接到Mysql Server");
說明:使用該鏈接函數不須要顯示的關閉鏈接,它至關於使用了鏈接池
三、mysql_close()-關閉數據庫鏈接
例:
$conn = @mysql_connect("localhost", "username", "password") or die("不能鏈接到Mysql Server");
@mysql_select_db("MyDatabase") or die("不能選擇這個數據庫,或數據庫不存在");
echo "你已經鏈接到MyDatabase數據庫";
mysql_close();
四、mysql_select_db()-選擇數據庫
格式:
boolean mysql_select_db(string db_name [, resource link_id])
例:
$conn = @mysql_connect("localhost", "username", "password") or die("不能鏈接到Mysql Server");
@mysql_select_db("MyDatabase") or die("不能選擇這個數據庫,或數據庫不存在");
五、mysql_query()-查詢MySQL
格式:
resource mysql_query (string query, [resource link_id])
例:
$linkId = @mysql_connect("localhost", "username", "password") or die("不能鏈接到Mysql Server");
@mysql_select_db("MyDatabase") or die("不能選擇這個數據庫,或者數據庫不存在");
$query = "select * from MyTable";
$result = mysql_query($query);
mysql_close();
說明:若SQL查詢執行成功,則返回資源標識符,失敗時返回FALSE。若執行更新成功,則返回TRUE,不然返回FALSE
六、mysql_db_query()-查詢MySQL
格式:
resource mysql_db_query(string database, string query [, resource link_id])
例:
$linkId = @mysql_connect("localhost", "username", "password") or die("不能鏈接到MysqlServer");
$query = "select * from MyTable";
$result = mysql_db_query("MyDatabase", $query);
mysql_close();
說明:爲了使代碼清晰,不推薦使用這個函數調用
七、mysql_result()-獲取和顯示數據
格式:
mixed mysql_result (resource result_set, int row [, mixed field])
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
for($count=0;$count<=mysql_numrows($result);$count++)
{
$c_id = mysql_result($result, 0, "id");
$c_name = mysql_result($result, 0, "name");
echo $c_id,$c_name;
}
說明:最簡單、也是效率最低的數據獲取函數
八、mysql_fetch_row()-獲取和顯示數據
格式:
array mysql_fetch_row (resource result_set)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while (list($id, $name) = mysql_fetch_row($result)) {
echo("Name: $name ($id) <br />");
}
說明:函數從result_set中獲取整個數據行,將值放在一個索引數組中。一般會結使list()函數使用
九、mysql_fetch_array()-獲取和顯示數據
格式:
array mysql_fetch_array (resource result_set [, int result_type])
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$id = $row["id"];
$name = $row["name"];
echo "Name: $name ($id) <br />";
}
又例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array($result, MYSQL_NUM)) {
$id = $row[0];
$name = $row[1];
echo "Name: $name ($id) <br />";
}
說明:
result_type的值有:
MYSQL_ASSOC: 字段名錶示鍵,字段內容爲值
MYSQL_NUM: 數值索引數組,操做與mysql_fetch_ros()函數同樣
MYSQL_BOTH: 即做爲關聯數組又做爲數值索引數組返回。result_type的默認值。
十、mysql_fetch_assoc()-獲取和顯示數據
格式:
array mysql_fetch_assoc (resource result_set)
至關於調用 mysql_fetch_array(resource, MYSQL_ASSOC);
十一、mysql_fetch_object()-獲取和顯示數據
格式:
object mysql_fetch_object(resource result_set)
例:
$query = "select id, name from MyTable order by name";
while ($row = mysql_fetch_object($result)) {
$id = $row->id;
$name = $row->name;
echo "Name: $name ($id) <br />";
}
說明:返回一個對象,在操做上與mysql_fetch_array()相同
十二、mysql_num_rows()-所選擇的記錄的個數
格式:
int mysql_num_rows(resource result_set)
例:
query = "select id, name from MyTable where id > 65";
$result = mysql_query($query);
echo "有".mysql_num_rows($result)."條記錄的ID大於65";
說明:只在肯定select查詢所獲取的記錄數時纔有用。
1三、mysql_affected_rows()-受Insert,update,delete影響的記錄的個數
格式:
int mysql_affected_rows([resource link_id])
例:
$query = "update MyTable set name='CheneyFu' where id>=5";
$result = mysql_query($query);
echo "ID大於等於5的名稱被更新了的記錄數:".mysql_affected_rows();
說明:該函數獲取受INSERT,UPDATE或DELETE更新語句影響的行數
1四、mysql_list_dbs()-獲取數據庫列表信息
格式:
resource mysql_list_dbs([resource link_id])
例:
mysql_connect("localhost", "username", "password");
$dbs = mysql_list_dbs();
echo "Databases: <br />";
while (list($db) = mysql_fetch_rows($dbs)) {
echo "$db <br />";
}
說明:顯示全部數據庫名稱
1五、mysql_db_name()-獲取數據庫名
格式:
string mysql_db_name(resource result_set, integer index)
說明:該函數獲取在mysql_list_dbs()所返回result_set中位於指定index索引的數據庫名
1六、mysql_list_tables()-獲取數據庫表列表
格式:
resource mysql_list_tables(string database [, resource link_id])
例:
mysql_connect("localhost", "username", "password");
$tables = mysql_list_tables("MyDatabase");
while (list($table) = mysql_fetch_row($tables)) {
echo "$table <br />";
}
說明:該函數獲取database中全部表的表名
1七、mysql_tablename()-獲取某個數據庫表名
格式:
string mysql_tablename(resource result_set, integer index)
例:
mysql_connect("localhost", "username", "password");
$tables = mysql_list_tables("MyDatabase");
$count = -1;
while (++$count < mysql_numrows($tables)) {
echo mysql_tablename($tables, $count)."<br />";
}
說明:該函數獲取mysql_list_tables()所返回result_set中位於指定index索引的表名
1八、mysql_fetch_field()-獲取字段信息
格式:
object mysql_fetch_field(resource result [, int field_offset])
例:
mysql_connect("localhost", "username", "password");
mysql_select_db("MyDatabase");
$query = "select * from MyTable";
$result = mysql_query($query);
$counts = mysql_num_fields($result);
for($count = 0; $count < $counts; $count++) {
$field = mysql_fetch_field($result, $count);
echo "<p>$field->name $field->type ($field->max_length) </p>";
}
說明:
返回的對象共有12個對象屬性:
name: 字段名
table: 字段所在的表
max_length:字段的最大長度
not_null: 若是字段不能爲null,則爲1,不然0
primary_key: 若是字段爲主鍵,則爲1,不然0
unique_key: 若是字段是惟一鍵,則爲1, 不然0
multiple_key: 若是字段爲非惟一,則爲1,不然0
numeric: 若是字段爲數值則爲1,不然0
blob: 若是字段爲BLOB則爲1,不然爲0
type: 字段的數據類型
unsigned: 若是字段爲無符號數則爲1,不然爲0
zerofill: 若是字段爲「零填充」則爲1, 不然爲0
1九、mysql_num_fields()-獲取查詢的字段個數
格式:
integer mysql_num_fields(resource result_set)
例:
$query = "select id,name from MyTable order by name";
$result = mysql_query($query);
echo "這個查詢的字段數是:".mysql_num_fields($result)."<br />";
20、mysql_list_fields()-獲取指定表的全部字段的字段名
格式:
resource mysql_list_fields (string database_name, string table_name [, resource link_id])
例:
$fields =mysql_list_fields("MyDatabase", "MyTable");
echo "數據庫MyDatabase中表MyTable的字段數: ".mysql_num_fields($fields)."<br />";
2一、mysql_field_flags()-獲取指定的字段選項
格式:
string mysql_field_flags (resource result_set, integer field_offset)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
$row=mysql_fetch_wor($row);
2二、mysql_field_len()-獲取指定的字段的最大長度
格式:
integer mysql_field_len (resource result_set, integer field_offset)
例:
$query = "select name from MyTable";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_len($result, 0)."<br />";
說明:
若是mysql_field_len($reseult, 0) = 16777215
那麼numer_format(mysql_field_len($result))等於16,777,215
2三、mysql_field_name()-獲取字段名
格式:
string mysql_field_name (resource result_set, int field_offset)
例:
$query = "select id as PKID, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_name($result, 0); // Result: PKID
2四、mysql_field_type()-獲取字段類型
格式:
string mysql_field_type (resource result_set, int field_offset)
例:
$query = "select id, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_type($result, 0); // Result: int
2五、mysql_field_table()-獲取字段所在表名
格式:
string mysql_field_table (resource result_set, int field_offset)
例:
$query = "select id as PKID, name from MyTable order by name";
$result = mysql_query($query);
$row = mysql_fetch_row($result);
echo mysql_field_table($result, 0); // Result: MyTable