自己在做項目過程中學到的PHP知識收集
更新時間:2012年08月20日 21:55:55 作者:
以前沒學過PHP,最近剛好一個項目需要用到,我就決定一邊學一邊做PHP
1 在SQL語句中可通過添加限制條件:left(text,20)只取text文本的前20個字;
2 可以用limit fromRecord, RecordNum 來作為分頁使用,比如limit 0,30表示從第一個記錄開始遍歷30個紀錄;
3 兩個表的連接可以是:table1 join table2 using x(x為兩個表的公共字段),或者是table1 join table2 on table1.x = table2.x
4 php獲取querystring可以用$page = $_GET['page'];
或者
$page = $_REQUEST['page'];
其中Request可取得post,get,QueryString等字符;
在這之前 我看到了一個較笨的辦法:
parse_str($_SERVER['QUERY_STRING'],$output); // 先將查詢字符串存到一個數(shù)組$output中
$page = $output['page']; //然后根據(jù)變量名索引
5 php中日期函數(shù)的比較實際上就是字符串的比較;
6 mysql中date類型的數(shù)據(jù)可以是:2000-02-03,2002.02.03,2002.2.3,02.02.03,02.2.3,就是說必須有月和日,而且必須以'-'或'.'分隔開來。
7 data()來獲取時間會有時區(qū)的問題,我發(fā)現(xiàn)時間都少了8個小時,是因為php.ini里面默認配置是GTM美國時區(qū);
解決辦法:可以修改php.ini:
[Date]
; Defines the default timezone used by the date functions
date.timezone = "Asia/Shanghai"
或者在使用date()函數(shù)是加上date_Default_TimeZone_set("PRC");
8 一段時間,調(diào)試時在body處總是說我缺少")",費了半天是intval($_POST['consumeType'])的問題,在數(shù)據(jù)庫中該字段是varchar(50),在zengsong表中我沒用intval函數(shù),是因為它的ID就是1,2...整數(shù)跟char型的可以互相轉(zhuǎn)換,但在另外兩個表中是A5A,SP07-01之類的,但它怎么轉(zhuǎn)換成int型了呢?
讓我們來看看intval函數(shù)的聲明:
intval函數(shù)用來獲取變量的整數(shù)值:int intval ( mixed var [, int base] )
通過使用特定的進制轉(zhuǎn)換(默認是十進制),返回變量 var 的 integer 數(shù)值。
var 可以是任何標量類型。intval() 不能用于 array 或 object。
9 另外一個莫名的問題,以用戶名1登陸就可以,換個'bo'登陸,系統(tǒng)就在處出錯:說我運行時間錯誤:缺少")",nnd。檢查了一下,原來是sql語句中的變量類型跟數(shù)據(jù)庫中的不一致,
10 php中當從浮點數(shù)轉(zhuǎn)換成整數(shù)時,數(shù)字將被取整(丟棄小數(shù)位)。
11 在mysql插入語句中,如果是自增字段要用(NULL)來代替。
12 php的中文亂碼???問題解決:
在mysql_connect后加入mysql_query("set names 'gb2312'");
或者全用utf8編碼,就不用加入上述語句了。
還有函數(shù)iconv("GBK","UTF8","字符串");可實現(xiàn)各種字符編碼的轉(zhuǎn)換。
2 可以用limit fromRecord, RecordNum 來作為分頁使用,比如limit 0,30表示從第一個記錄開始遍歷30個紀錄;
3 兩個表的連接可以是:table1 join table2 using x(x為兩個表的公共字段),或者是table1 join table2 on table1.x = table2.x
4 php獲取querystring可以用$page = $_GET['page'];
或者
$page = $_REQUEST['page'];
其中Request可取得post,get,QueryString等字符;
在這之前 我看到了一個較笨的辦法:
parse_str($_SERVER['QUERY_STRING'],$output); // 先將查詢字符串存到一個數(shù)組$output中
$page = $output['page']; //然后根據(jù)變量名索引
5 php中日期函數(shù)的比較實際上就是字符串的比較;
6 mysql中date類型的數(shù)據(jù)可以是:2000-02-03,2002.02.03,2002.2.3,02.02.03,02.2.3,就是說必須有月和日,而且必須以'-'或'.'分隔開來。
7 data()來獲取時間會有時區(qū)的問題,我發(fā)現(xiàn)時間都少了8個小時,是因為php.ini里面默認配置是GTM美國時區(qū);
解決辦法:可以修改php.ini:
[Date]
; Defines the default timezone used by the date functions
date.timezone = "Asia/Shanghai"
或者在使用date()函數(shù)是加上date_Default_TimeZone_set("PRC");
8 一段時間,調(diào)試時在body處總是說我缺少")",費了半天是intval($_POST['consumeType'])的問題,在數(shù)據(jù)庫中該字段是varchar(50),在zengsong表中我沒用intval函數(shù),是因為它的ID就是1,2...整數(shù)跟char型的可以互相轉(zhuǎn)換,但在另外兩個表中是A5A,SP07-01之類的,但它怎么轉(zhuǎn)換成int型了呢?
讓我們來看看intval函數(shù)的聲明:
intval函數(shù)用來獲取變量的整數(shù)值:int intval ( mixed var [, int base] )
通過使用特定的進制轉(zhuǎn)換(默認是十進制),返回變量 var 的 integer 數(shù)值。
var 可以是任何標量類型。intval() 不能用于 array 或 object。
9 另外一個莫名的問題,以用戶名1登陸就可以,換個'bo'登陸,系統(tǒng)就在處出錯:說我運行時間錯誤:缺少")",nnd。檢查了一下,原來是sql語句中的變量類型跟數(shù)據(jù)庫中的不一致,
10 php中當從浮點數(shù)轉(zhuǎn)換成整數(shù)時,數(shù)字將被取整(丟棄小數(shù)位)。
11 在mysql插入語句中,如果是自增字段要用(NULL)來代替。
12 php的中文亂碼???問題解決:
在mysql_connect后加入mysql_query("set names 'gb2312'");
或者全用utf8編碼,就不用加入上述語句了。
還有函數(shù)iconv("GBK","UTF8","字符串");可實現(xiàn)各種字符編碼的轉(zhuǎn)換。
相關(guān)文章
php下HTTP Response中的Chunked編碼實現(xiàn)方法
有時候,Web服務(wù)器生成HTTP Response是無法在Header就確定消息大小的,這時一般來說服務(wù)器將不會提供Content-Length的頭信息,而采用Chunked編碼動態(tài)的提供body內(nèi)容的長度。2008-11-11php壓縮HTML函數(shù)輕松實現(xiàn)壓縮html/js/Css及注意事項
如何提高網(wǎng)頁加載速度需要對網(wǎng)頁怎樣的優(yōu)化等等,都是站長們所關(guān)心的問題,其實壓縮網(wǎng)頁的方法很多,本文將講解一下php壓縮HTML函數(shù)輕松實現(xiàn)壓縮html/js/Css,感興趣的朋友可以了解下,希望本文對你有所幫助2013-01-01