自己在做專案過程中學到的PHP知識收集

2021-04-13 22:04:05 字數 1640 閱讀 3788

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); // 先將查詢字串存到乙個陣列$output中

$page = $output['page']; //然後根據變數名索引

5 php中日期函式的比較實際上就是字串的比較;

6 mysql中date型別的資料可以是:2000-02-03,2002.02.03,2002.2.3,02.02.03,02.2.3,就是說必須有月和日,而且必須以'-'或'.'分隔開來。

7 data()來獲取時間會有時區的問題,我發現時間都少了8個小時,是因為php.ini裡面預設配置是gtm美國時區;

解決辦法:可以修改php.ini:

[date]

; defines the default timezone used by the date functions

date.timezone = "asia/shanghai"

或者在使用date()函式是加上date_default_timezone_set("prc");

8 一段時間,除錯時在body處總是說我缺少")",費了半天是intval($_post['consumetype'])的問題,在資料庫中該字段是varchar(50),在zengsong表中我沒用intval函式,是因為它的id就是1,2...整數跟char型的可以互相轉換,但在另外兩個表中是a5a,sp07-01之類的,但它怎麼轉換成int型了呢?

讓我們來看看intval函式的宣告:

intval函式用來獲取變數的整數值:int intval ( mixed var [, int base] )

通過使用特定的進製轉換(預設是十進位制),返回變數 var 的 integer 數值。

var 可以是任何標量型別。intval() 不能用於 array 或 object。

9 另外乙個莫名的問題,以使用者名稱1登陸就可以,換個'bo'登陸,系統就在處出錯:說我執行時間錯誤:缺少")",nnd。檢查了一下,原來是sql語句中的變數型別跟資料庫中的不一致,

10 php中當從浮點數轉換成整數時,數字將被取整(丟棄小數字)。

11 在mysql插入語句中,如果是自增字段要用(null)來代替。

12 php的中文亂碼???問題解決:

在mysql_connect後加入mysql_query("set names 'gb2312'");

或者全用utf8編碼,就不用加入上述語句了。

還有函式iconv("gbk","utf8","字串");可實現各種字元編碼的轉換。

自己在做專案過程中學到的PHP知識收集

1 在sql語句中可通過新增限制條件 left text,20 只取text文字的前20個字 2 可以用limit fromrecord,recordnum 來作為分頁使用,比如limit 0,30表示從第乙個記錄開始遍歷30個紀錄 3 兩個表的連線可以是 table1 join table2 us...

做專案過程中學到的PHP知識收集

1 在sql語句中可通過新增限制條件 left text,20 只取text文字的前20個字 2 可以用limit fromrecord,recordnum 來作為分頁使用,比如limit 0,30表示從第乙個記錄開始遍歷30個紀錄 3 兩個表的連線可以是 table1 join table2 us...

做專案過程中學到的PHP知識收集

1 在sql語句中可通過新增限制條件 left text,20 只取text文字的前20個字 2 可以用limit fromrecord,recordnum 來作為分頁使用,比如limit 0,30表示從第乙個記錄開始遍歷30個紀錄 3 兩個表的連線可以是 table1 join table2 us...