第一篇:四川商會(huì)php技能培訓(xùn)中心學(xué)習(xí)總結(jié)(一)
四川商會(huì)php技能培訓(xùn)中心學(xué)習(xí)總結(jié)
(一)在四川商會(huì)培訓(xùn)php學(xué)習(xí)到今天也是快一個(gè)月時(shí)間了,然而到今天為止第一個(gè)php寫的網(wǎng)站已經(jīng)快要見亮了,中午后臺(tái)部分全部功能完成意味著以后做別的站可以拿來就用,不用再費(fèi)太多精力編寫了,現(xiàn)在就簡單寫寫學(xué)習(xí)php的這一個(gè)月我遇到的主要問題。問題1:環(huán)境搭配
php最經(jīng)典的組合當(dāng)然是LAMP(Linux+Apache+MySQL+PHP)了,不過我沒有條件和精力弄Linux所以用Windows 2003代替Linux了,自己調(diào)試用,又不是做服務(wù)器,所以不要求性能足夠用了。
本身我的機(jī)器是Win2003+IIS+Framework環(huán)境能跑起來ASP和.net,并且裝有jdk+tomcat+oracle還能跑起來jsp,本打算不破壞這些環(huán)境再安裝apache和mysql,不過困難重重啊。
于是放棄jsp環(huán)境,并且用ghost備份了asp環(huán)境,刪掉IIS后重新安裝PHP環(huán)境,環(huán)境還是很好搭的,在百度上輕易的找到教程照著安裝就可以Apache+PHP+MySQL+PHPMyAdmin,沒有安裝Zend,以后深入學(xué)習(xí)的時(shí)候再說吧,沒有研究明白多個(gè)網(wǎng)站的時(shí)候怎么存在不同的路徑運(yùn)行在不同端口,也先不管了,現(xiàn)在80端口跑吧,環(huán)境調(diào)試好了以后備份了一個(gè)ghost,算是php環(huán)境成功搭起來了。
問題2:對(duì)utf-8編碼文件的標(biāo)記BOM導(dǎo)致的頁面空行
這個(gè)問題以前在學(xué)習(xí)xhtml+css的時(shí)候遇到過,那時(shí)候是因?yàn)槲臋n聲明類型前面加別的代碼了或者沒有寫文檔聲明類型xhtml1.0卻用w3c的標(biāo)準(zhǔn)做頁面導(dǎo)致的,起初我以為也是把require寫在文檔聲明前面出的問題呢,后來反復(fù)調(diào)試發(fā)現(xiàn)不是這么簡單,后來上百度搜索了很多關(guān)于require引起空行的問題,有一個(gè)牛人提到了要在dreamweaver里面ctrl+j把utf-8編碼的BOM去掉,當(dāng)時(shí)也不懂BOM是啥,說去掉就去掉吧,確實(shí)解決問題了,這算是把這一關(guān)過去了,不過后面還有utf-8的問題呢,也是跟這個(gè)有關(guān)系。
問題3:php下checkbox的取值問題
這是我發(fā)現(xiàn)php唯一一個(gè)不方便的地方,不像asp那樣,所有同名的checkbox的值存成一個(gè)集合,php只能取同名里最后一個(gè)checkbox的值,在做多數(shù)據(jù)where in(aa,bb,cc,dd)查詢的時(shí)候很不方便,只能用js+一個(gè)hidden input的方法實(shí)現(xiàn),雖然有點(diǎn)小麻煩,不過不是大問題,很容易就解決了,上網(wǎng)查了一下也確實(shí)只有這么才能解決!
問題4:Access庫轉(zhuǎn)到MySQL的問題
畢竟數(shù)據(jù)庫已經(jīng)設(shè)計(jì)好了,再在PHPMyAdmin中建一次表也很麻煩,索性找個(gè)軟件來直接轉(zhuǎn)庫,還不錯(cuò)讓我找到各爆好用的軟件,不過全英文界面,名字沒記住,明天去公司看看再發(fā)上來,庫很輕松的轉(zhuǎn)過來了,但是我手很賤,看到MySQL里面的data文件夾下有和我建的數(shù)據(jù)庫一樣名字的文件夾,我以為有這個(gè)文件夾就不用建庫倒庫了,一時(shí)興起把沒用的都刪掉了,問題來了PHPMyAdmin連不上庫了,這個(gè)倒是好解決,重裝了一次MySQL解決問題,可是我沒備份就換回ASP環(huán)境,再換回來的時(shí)候MySQL出大問題了,重裝都不管用了,上百度一頓神搜,最終csdn的牛人給了答案“把libmysql.dll和php5ts.dll考到system32下”,解決問題。
第二篇:四川商會(huì)php技能培訓(xùn)中心學(xué)習(xí)總結(jié)(二)
四川商會(huì)php技能培訓(xùn)中心學(xué)習(xí)總結(jié)
(二)問題5:NTFS權(quán)限問題。
這個(gè)問題ASP上也出現(xiàn)過,不過換在PHP環(huán)境就沒多一份心往這方面想,所以足足憋了我一上午,發(fā)現(xiàn)這個(gè)問題是在朋友的服務(wù)器上,前一天喝酒正好認(rèn)識(shí)一個(gè)哥們兒遇到php建站的問題了,接著酒勁我就裝了一把,說我php多牛多牛啊,知道的我才學(xué)2星期,哈哈哈,第二天就給人家解決問題吧,牛都吹出去了也不能不管人家,連上服務(wù)器一看原來是安裝phpcms的時(shí)候遇到了MySQL問題安裝無法繼續(xù)進(jìn)行了,百度上一頓神搜找到問題關(guān)鍵了是NTFS權(quán)限問題,這就好解決了,加個(gè)Internet來賓用戶就解決了,估計(jì)自己以后也會(huì)遇到這問題,所以早遇到比晚遇到強(qiáng),關(guān)鍵時(shí)候知道怎么回事兒!
問題6:Cookies讀寫問題。
這個(gè)問題應(yīng)該不是很大的問題,只不過當(dāng)天馬上下班了,沒有來得及解決,第二天很輕易的就搞定了,剛開始學(xué)習(xí)肯定語句掌握的不多,以為$_COOKIE[“xxx”]既可以讀也可以寫呢,用到這兒的時(shí)候才發(fā)現(xiàn)部對(duì)路子,上網(wǎng)隨便一搜“php cookies 寫入”答案就來了,setcookie即可,真簡單啊。
問題7:php分頁。
用ASP的時(shí)候SQL語句也沒深入研究,根本就不知道limit這回事兒,我說以前看淘寶、百度的分頁上有0 20、20 20這樣的參數(shù)傳遞呢,都是干分頁用的,稍補(bǔ)了一堂SQL課程問題迎刃而解,頁數(shù)判斷那里原理都一樣就沒當(dāng)成問題,一路綠燈解決戰(zhàn)斗!
問題8:創(chuàng)建utf-8文件寫入中文亂碼問題,問題2的后續(xù)問題。
一開始就把這個(gè)功能做好了,只不過沒用中文測(cè)試,后來做到有中文的地方發(fā)現(xiàn)這里不靈了,哎呀那個(gè)頭疼啊,這個(gè)問題收拾了我好幾天,一直沒解決,為了不被這個(gè)問題困擾,所以就先用英文寫入把這里條過去了,昨天必須得解決這里了,所以就硬下頭皮整吧,還是BOM的簽名問題,以下均為我自己理解,不知道對(duì)不對(duì),Windows環(huán)境識(shí)別UTF-8與ANSI文件靠的是UTF-8文件前的一個(gè)叫做BOM簽名的東西,這個(gè)東西普通的文本編輯器是看不到的 xEF xBF xEE好像是這三個(gè)16進(jìn)制字符,反正是三個(gè)東西,問題2里毛病也是他們?nèi)齻€(gè)整出來的,UTF-8在Windows下雖然要用這三個(gè)家伙區(qū)分,在php下確實(shí)沒有用的東西,要不問題2里面為啥要去掉BOM簽名呢,怪就怪我在做ASP的時(shí)候遇到過同樣的UTF-8文件寫入中文亂碼問題,所以就留了個(gè)心眼,先在網(wǎng)上艘了一個(gè)UTF-8文件在php寫入的函數(shù),里面就把那三個(gè)討厭的東西加進(jìn)去了,哎呀我去,這就是聰明反被聰明誤,這頓調(diào)試就是不行啊,后來我也是恍然大悟,把這三個(gè)家伙去掉了,問題解決了,那個(gè)暢快啊。
還有很多小問題就不細(xì)說了,比如$的轉(zhuǎn)義符是chr(36)啊,SQL中的關(guān)鍵詞from啊(在asp中不是關(guān)鍵詞),時(shí)間函數(shù)的使用(巨方便,比ASP的用著舒服)。
第三篇:php學(xué)習(xí)總結(jié)
調(diào)試/*………*/ //…….#..........插入時(shí)考慮清楚字段類型避免插入后出現(xiàn)缺值,亂碼
@ 屏蔽錯(cuò)誤or die 條件顯示
以前學(xué)習(xí)php類的總結(jié):
1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實(shí)現(xiàn)新的重載
1.1 在子類中調(diào)用父類的覆蓋部分可以使用 父類名稱::方法名稱();
2.final 只能定義類和方法,不能使用final定義成員屬性,因?yàn)閒inal是常量的意思,在php里定義常量使用的是define函數(shù)
2.1 final關(guān)鍵字標(biāo)記的類不能被繼承
2.2 final關(guān)鍵字標(biāo)記的方法不能被子類重寫
3.const是一個(gè)定義常量的關(guān)鍵字,在php中定義常量使用的是define()函數(shù),但是在類里定義常量使用的是“const” 這個(gè)關(guān)鍵字
3.1在程序中不能修改它的值。
3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關(guān)鍵字,但不使用“$”符號(hào),也不能使用對(duì)象來訪問。
4.static關(guān)鍵字可以描述類中的成員屬性和成員方法
4.1 static 的成員屬于類,而不屬于任何對(duì)象,4.2 static的成員是在類第一次被加載的時(shí)候分配的空間,其他類無法訪問的,只對(duì)類的實(shí)例共享,能一定程度對(duì)類該成員形成保護(hù)
4.3 靜態(tài)成員放到了“初始化靜態(tài)段”,在類第一次加載的時(shí)候放入的,可以讓堆內(nèi)存里的每個(gè)對(duì)象共享。所以在靜態(tài)方法里,可以使用這個(gè)方法所在的類的“類名”,也可以使用“self”來訪問其他靜態(tài)成員?!皊elf”代表這個(gè)靜態(tài)方法所在的類。
4.3.1 在類里的靜態(tài)方法是不能訪問類的非靜態(tài)成員的。
4.3.2 在類的非靜態(tài)方法里可以訪問靜態(tài)成員:”self:成員屬性“;
4.4類的靜態(tài)變量,非常類似全局變量,能夠被所有類的實(shí)例共享,類的靜態(tài)方法也是一樣,類似于全局函數(shù)。
4.5 在類內(nèi)函數(shù)訪問靜態(tài)變量時(shí)前面加self::靜態(tài)函數(shù)
4.6 靜態(tài)變量可以在類外直接訪問,訪問方法是類名::靜態(tài)變量
4.7 靜態(tài)函數(shù)可以在類外直接訪問,訪問方式是類名::靜態(tài)函數(shù)
4.8 在類內(nèi)靜態(tài)函數(shù)訪問另一個(gè)靜態(tài)函數(shù)時(shí)使用 類名::靜態(tài)函數(shù)名
4.8.1 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時(shí),訪問方式是類名::靜態(tài)變量
4.8.2 靜態(tài)函數(shù)在類內(nèi)訪問靜態(tài)變量時(shí),訪問方式除了是類名::靜態(tài)變量外,還可以使用self::靜態(tài)變量
4.9 在類內(nèi)靜態(tài)函數(shù)訪問另一個(gè)靜態(tài)函數(shù)時(shí)除了使用 類名::靜態(tài)函數(shù)名外,還可以使用self::靜態(tài)函數(shù)名,也可以直接調(diào)用靜態(tài)函數(shù)
4.10 靜態(tài)函數(shù)內(nèi)不能訪問非靜態(tài)變量
4.11 在類內(nèi)靜態(tài)函數(shù)不能使用$this->非靜態(tài)函數(shù)名訪問非靜態(tài)函數(shù),可以使用self::非靜態(tài)函數(shù)名
4.12
5.類里的”$this“,在php里面提供了一個(gè)本對(duì)象的引用$this,每個(gè)對(duì)象里面都有一個(gè)對(duì)象的引用$this來代表這個(gè)對(duì)象,完成對(duì)象內(nèi)部成員的調(diào)用。
5.1 $this 就是對(duì)象內(nèi)部代表這個(gè)對(duì)象的引用。
6.類里“self”,self 和$this相似,只不過self是代表這個(gè)靜態(tài)方法所在的類,所以在靜態(tài)方法里,可以使用這個(gè)方法所在的類的”類名“,也可以使用“self”來訪問其他的靜態(tài)成員,通常使用后者”self::成員屬性“。
7.類里”__“開頭的函數(shù)名
7.1類里”__“開頭的函數(shù)名都是在某一時(shí)刻不同情況下自動(dòng)調(diào)用執(zhí)行的方法。
7.2__toString()方法也是自動(dòng)被調(diào)用,是直接輸出對(duì)象引用時(shí)自動(dòng)調(diào)用的。比如“$p = new Person()”,直接用echo輸出$p會(huì)產(chǎn)生錯(cuò)誤,如果在類里定義了__toString()方法,再用echo直接輸出對(duì)象引用的時(shí)候就不會(huì)產(chǎn)生錯(cuò)誤了
8.對(duì)象串行化
8.1 __sleep()方法,在對(duì)象串行化的時(shí)候,會(huì)調(diào)用一個(gè)__sleep()方法來完成一些睡前的事情,__sleep()函數(shù)不接受任何參數(shù),但返回一個(gè)數(shù)組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時(shí)被忽略,如果沒有__sleep()方法,php將保存所以屬性.8.2 __wakeup()方法,在重新醒來時(shí),即由二進(jìn)制串重新組成一個(gè)對(duì)象的時(shí)候,則會(huì)自動(dòng)調(diào)用__wakeup(),做一些對(duì)象醒來就要做的動(dòng)作。
8.3 有時(shí)你可能需要一個(gè)對(duì)象在反串行化后立即執(zhí)行.為了這樣的目的,PHP會(huì)自動(dòng)尋找__sleep和__wakeup方法.9.protected 成員能被同個(gè)類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實(shí)例直接訪問。protected and public 可以動(dòng)態(tài)綁定
10.private 大部分private屬性仍然可以被外部代碼共享.解決方法是用一對(duì)public方法,一個(gè)是get(獲取屬性的值),另一個(gè)是set(設(shè)置屬性的值).10.1private 不可以動(dòng)態(tài)綁定。Private成員只存在于它們所在的類內(nèi)部.不像public和protected成員那樣,PHP模擬靜態(tài)綁定.10.2 什么時(shí)候用到private?private成員只有當(dāng)你不想讓子類繼承改變或特殊化父類的行為時(shí)才用到,這種情況比你想像的要少,通常來說,一個(gè)好的對(duì)象分層結(jié)構(gòu)應(yīng)當(dāng)允許絕大多數(shù)功能被子類特殊化,改進(jìn),或改變—這是面向?qū)ο缶幊痰幕A(chǔ)之一。一定的情況下需要private方法或變量,例如當(dāng)你確信你不想允許子類改變父類中的某個(gè)特定的部份。
11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個(gè)地方但不起作用),它與一般方法不同—沒有任何代碼.如果類中存在一個(gè)或更多抽象方法, 那么這個(gè)類就成了抽象類.你不能實(shí)例化抽象類.你必須繼承它們,然后實(shí)例化子類.你也可以把抽象類看成是子類的一個(gè)模板.如果你覆寫所有的抽象方法, 子類就變成一個(gè)普通的類.如果沒有覆寫所有方法, 子類仍是抽象的.如果一個(gè)類中中包含有抽象方法(哪怕只有一個(gè)), 你必須聲明這個(gè)類是抽象的, 在class關(guān)鍵字前加上abstract.聲明抽象方法的語法與聲明一般方法不同.抽象方法的沒有像一般方法那樣包含在大括號(hào){}中的主體部份,并用分號(hào);來結(jié)束.12.接口:如果你建立了一個(gè)只有抽象方法的類,你就定義了一個(gè)接口(interface).為了說明這種情況, PHP中有interface 和implements關(guān)鍵字.你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個(gè)接口.例如, 你可以寫一個(gè)myClass implements myIterface.這兩種方法可以依個(gè)人偏愛來選擇.12.1 如果接口中出現(xiàn)非抽象方法.會(huì)報(bào)錯(cuò)
12.2 接口中的方法默認(rèn)是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final
12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態(tài)方法.12.5 在接口中可以有常量,e.g.:
interfaceUser{
const MAX_GRADE = 99;
function getName();
function setName($_name);
}
?>
13.Namespace關(guān)鍵字給一塊代碼命名.在這個(gè)代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個(gè)代碼塊.引用靜態(tài)的類成員也是用相同的方法.在命名空間內(nèi)代碼不需要聲明命名空間, 它本身就是默認(rèn)的.這種方法比添加前綴的方法好.你的代碼可由此變得更加緊湊和可讀.你可能想知道是否可以建立分層的(嵌套的)命名空間.答案是不可以.但你可以在命名空間名稱后加上冒號(hào), 你可以再次調(diào)用在名稱中不包含冒號(hào)的變量,函數(shù)和類.命名空間允許存在冒號(hào),只要不是第一個(gè)字符和最后一個(gè)字符或接著另一個(gè)冒號(hào).命名空間的名稱中的冒號(hào)對(duì)于PHP來說沒有任何意義, 但如果你用他們來區(qū)分邏輯上的區(qū)塊, 他們可以很好地說明你的代碼中的父子(parent-child)關(guān)系.14.__toString()打印對(duì)象會(huì)調(diào)用它的__toString方法.15.不能實(shí)例化的類
//
//當(dāng)__construct()為public時(shí)可以實(shí)例化
class A{
private function __construct(){}
}
$a = new A();//fail
?>
15.1
//static的方法留給外部訪問.
class A{
private function __construct(){}
static function getClassA(){
return “這里是后門,可以通過這里進(jìn)入類內(nèi)部..”;
}
}
echo A::getClassA();
?>
15.2
//不能用new實(shí)例化的類.
//static的方法留給外部訪問.
//在方法內(nèi)部返回實(shí)例.
class A{
private function __construct(){
echo “this is construction
n”;
}
static function getClassA(){
$a = new A();
return $a;
}
}
// 看到這里確實(shí)返回的是 A 的實(shí)例.但不是同一個(gè)對(duì)象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對(duì)象.”;
}else{
echo “
$a1 $a2 不是一個(gè)對(duì)象.”;
}
//this is construction
//this is construction
//$a1 的類是 A , $a2 是 A
//$a1 $a2 不是一個(gè)對(duì)象.?>
15.3
//不能用new實(shí)例化的類.
//static的方法留給外部訪問.
//在方法內(nèi)部返回實(shí)例.
//定義靜態(tài)屬性保證這個(gè)實(shí)例能被靜態(tài)方法調(diào)用.
//增加判斷部分.
class A{
private static $a = null;
private function __construct(){}
static function getClassA(){
if(null == self::$a){
self::$a = new A();
}
return self::$a;
}
}
// 看到這里確實(shí)返回的是 A 的實(shí)例.但不是同一個(gè)對(duì)象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對(duì)象.”;
}else{
echo “
$a1 $a2 不是一個(gè)對(duì)象.”;
}
//$a1 的類是 A , $a2 是 A
//$a1 $a2 指向同一對(duì)象.?>
第四篇:培訓(xùn)中心“五個(gè)一”活動(dòng)總結(jié)
培訓(xùn)中心“五個(gè)一”活動(dòng)總結(jié)
為深入貫徹落實(shí)科學(xué)發(fā)展觀,切實(shí)加強(qiáng)自身建設(shè),不斷提高科室人員素質(zhì),增強(qiáng)專業(yè)能力,為我礦的發(fā)展做出更大貢獻(xiàn),根據(jù)集團(tuán)公司文件要求。我科室組織開展了“五個(gè)一”活動(dòng)。活動(dòng)取得了一定成效,現(xiàn)將活動(dòng)總結(jié)如下:
一、指導(dǎo)思想
圍繞集團(tuán)確定的發(fā)展戰(zhàn)略目標(biāo),以推行“五個(gè)一”活動(dòng)為抓手,大力營造工作學(xué)習(xí)化,學(xué)習(xí)工作化的氛圍,引導(dǎo)員工樹立全員學(xué)習(xí)、終身學(xué)習(xí)的理念,努力掌握和運(yùn)用科學(xué)的新思想、新知識(shí)、新經(jīng)驗(yàn),深化創(chuàng)新成果學(xué)習(xí),促使全體員工的學(xué)習(xí)不斷提升、知識(shí)素養(yǎng)不斷提高,為實(shí)現(xiàn)“綠色山煤、幸福山煤、百年山煤”的共同愿景提供強(qiáng)大的思想保證和智力支持。
二、組織領(lǐng)導(dǎo)
制定了開展“五個(gè)一”活動(dòng)實(shí)施方案,有培訓(xùn)中心主任組織學(xué)習(xí)并親自授課學(xué)習(xí)。
三、活動(dòng)內(nèi)容和開展情況
(一)每周開展一次培訓(xùn)。我中心每周二集中學(xué)習(xí)一次培訓(xùn)的專業(yè)知識(shí)學(xué)習(xí),同時(shí)做好筆記,不斷促使我們掌握本專業(yè)最前沿理論和最尖端技術(shù),成為專業(yè)工作的行家里手、領(lǐng)導(dǎo)決策的好參謀、服務(wù)基層的好幫手。
(二)每月讀一本書。為提高我中心人員對(duì)各工種的了解,堅(jiān)持
每月讀一本關(guān)于各工種的書籍,只有了解工種才能更好的組織培訓(xùn),用學(xué)習(xí)來提高我們的工作能力。
(三)每季度進(jìn)行一次專題講座。今年以來,根據(jù)工作實(shí)際,以“干部上講臺(tái)、培訓(xùn)到現(xiàn)場(chǎng)”活動(dòng)為抓手。各科室領(lǐng)導(dǎo)走上講臺(tái),為員工宣講業(yè)務(wù)知識(shí),增強(qiáng)員工知識(shí),為推行我礦跨越發(fā)展。
(四)每半年進(jìn)行一次小結(jié)。根據(jù)我科室業(yè)務(wù)所需,對(duì)一線隊(duì)組進(jìn)行走訪,了解一線隊(duì)組的需求和意見,并對(duì)所提出的問題進(jìn)行答復(fù)和處理情況記錄。并對(duì)半年的“五個(gè)一”活動(dòng)開展情況進(jìn)行總結(jié)分析,發(fā)現(xiàn)問題并解決,促進(jìn)我科工作的順利開展。
(五)每年進(jìn)行一次評(píng)選表彰。積極做好科室學(xué)習(xí)型先進(jìn)集體和個(gè)人的評(píng)選活動(dòng)。
四、要求
1、要學(xué)以致用,把創(chuàng)建學(xué)習(xí)型企業(yè)與推動(dòng)企業(yè)機(jī)制創(chuàng)新、管理創(chuàng)新、技術(shù)創(chuàng)新結(jié)合起來,促進(jìn)科室工作健康發(fā)展。
2、建立有效的學(xué)習(xí)制度,把創(chuàng)建活動(dòng)落到實(shí)處。
第五篇:PHP學(xué)習(xí)總結(jié)的一些經(jīng)驗(yàn)
其實(shí)我也是一樣很新的新手,上PHP100學(xué)習(xí)視頻并在論壇里學(xué)習(xí)其實(shí)也就是一個(gè)月前的事.雖然早在8月份花過一個(gè)星期看完w3school的PHP教 程,了解了許多PHP知識(shí).但始終是缺乏一個(gè)與眾多朋友學(xué)習(xí)和交流的平臺(tái),所以一下子在幾周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100視頻和論壇,不僅可以系統(tǒng)地學(xué)習(xí)下PHP,更可以和很多朋友一起學(xué)習(xí)成長這更是件好事.在php100視頻中學(xué)到了許多,而 論壇中看帖和回帖也更讓我鞏固了學(xué)習(xí)的知識(shí)并讓我學(xué)到了很多,這不僅不會(huì)讓我又把PHP知識(shí)快速忘記(因?yàn)楣ぷ髦杏檬茿SP,而PHP不會(huì)在工作中用,所 以忘得快),反而在取得進(jìn)步的同時(shí),我也能幫助一些人,這也是一樣是學(xué)習(xí)勝利的過程,我喜歡并享受其中.以下是我上論壇以來的回復(fù)總結(jié),將不斷持續(xù)總結(jié).希望有利于與我一樣的新手一起成長.首先來個(gè),題前語:
任何的學(xué)習(xí),都需要自信,再新的新手也應(yīng)該拋棄心中的恐懼,有時(shí)關(guān)鍵在于你心平下來,踏入學(xué)習(xí)后,你將慢慢化開迷惑,獲得信心,贏取自信!讓我們共同進(jìn)步.----------
==========
Undefined index問題
是運(yùn)行的時(shí)候出現(xiàn)類似:Notice: Undefined index: action in D:wamp004km.cn/read.php?tid=15843&page=1#138857
是 php 配置的事情
這個(gè)錯(cuò)誤是因?yàn)?php 頁面中的變量沒有初始化而導(dǎo)致的!
可以通過設(shè)置PHP.INI搞好,也可以在變量前面 加上一個(gè) @ 就可以解決這個(gè)地方的問題了!
如這里指示第三行
Notice: Undefined index: action in D:wamp004km.cn/2009/0617/6463.php
----------
==========
遇到頁面明確提示你錯(cuò)誤的,并有顯示如何錯(cuò)的,建議先把語句復(fù)制部分重點(diǎn)詞句或全部語句到百度或
google,更快速讓在你排查錯(cuò)誤找到方法.其實(shí)這也是一種高效有益的學(xué)習(xí)方法,畢竟在工作中,遇到些沒
遇過的新問題,有時(shí)都需要借助網(wǎng)上的資源給自己靈感和助力,本人就一天不下幾十次用百度搜索.如程序中遇到諸如含提示:
顯示的錯(cuò)誤為:
Parse error: syntax error, unexpected $end in D:wampwwwtestlist.php on line 21
那么你就可以把 syntax error, unexpected $end 作為關(guān)鍵詞到百度搜索,那么你即刻可以得到助力甚
至答案.以上那句舉例的錯(cuò)誤是因?yàn)?短標(biāo)簽沒有打開.解決方法是打開php.ini把short_open_tag短標(biāo)簽
打開,重啟服務(wù)即可
----------
==========
提示的時(shí)候,有時(shí)順便把代碼帖上帖子是必要的,這樣才能快速地在別人的幫助下問題得到解決
----------
==========
對(duì)單引號(hào)和雙引號(hào)有迷惑,大家可以看這篇文章解下惑:
----------
==========
在調(diào)試程序時(shí),經(jīng)常要用到echo 你的sql語句來,檢查傳值后,sql變成了什么樣的情況,以便排查錯(cuò)誤.----------
==========
向數(shù)據(jù)庫表插入數(shù)據(jù)
INSERT INTO 語句用于向數(shù)據(jù)庫表添加新紀(jì)錄。
語法
INSERT INTO table_name VALUES(value1, value2,....)--此種情況是需要按你表中所有字段的順
序全部value填上!
您還可以規(guī)定希望在其中插入數(shù)據(jù)的列:
INSERT INTO table_name(column1, column2,...)VALUES(value1, value2,....)--張老師明確建
議用此種方法!
----------
==========
有人疑惑,$_POST或$GET取得時(shí)的引號(hào)問題:其實(shí)是要不要引號(hào),單引號(hào)或雙引號(hào)都是沒有問題的.如, $_POST[name]和$_POST['name']和$_POST[“name”]都是在windows下一樣的,在linux下情況具體沒
用過,不知道,還望高手告知.----------
==========
針對(duì)多數(shù)人的留言板課程中許多問題(如,insert into存不進(jìn)數(shù)據(jù)問題)的總結(jié):
1.檢查你數(shù)據(jù)庫表的結(jié)構(gòu)是否正確,如id是否設(shè)為自增
2.insert into語句是否正確,如單詞是否正確,insert into...values...3.是否將`(反斜點(diǎn),在1鍵前)號(hào)和'(引號(hào))是否使用位置正確,正確的方法是:`應(yīng)該放在表和字段邊,而'
是放在字符串型(或者說是非數(shù)字型)的值邊上
4.檢查你的各語句,是否在結(jié)尾將分號(hào)(;)正確結(jié)束
5.檢查你的submit表單項(xiàng)的name值是否你判斷的取值,如
value=“提交”>時(shí),你的判斷是否提交應(yīng)是 if($_POST[submit]){...};當(dāng)你的是
type=“submit” name=“othername” value=“提交”>時(shí),你的判斷是否提交應(yīng)是 if($_POST
[othername]){...}
6.檢查你的$_POST是否大寫,當(dāng)你寫成$_post是不行的,因?yàn)?_GET,$_POST等,都是PHP系統(tǒng)環(huán)境的硬性用
法
7.用echo 輸出你的sql檢查傳值情況
8.檢查你的短標(biāo)簽是否打開
9.注意你的method是get還是post
10.檢查你的表單相關(guān)單詞或引號(hào)是否書寫正確.很多莫名其妙的問題,多是細(xì)節(jié)問題.要小心查對(duì)才能看
出來.----------
sql語句中表名和字段名在windows的情況下是可以不加小斜點(diǎn)(鍵盤左上角1鍵前的那個(gè)點(diǎn)鍵)的,但聽說
在linux中不加會(huì)引出些問題,兼容的寫法是有小斜點(diǎn).如:windows下:
$sql=“select * from table ”
和
$sql=“select * from `table` ”
是效果一樣的再次重點(diǎn)提示是:
`(反斜點(diǎn),在1鍵前)號(hào)和'(引號(hào))使用位置,正確的方法是:`應(yīng)該放在表和字段邊,而'是放在字符串型(或
者說是非數(shù)字型)的值邊
----------
==========
php100第十三講的page.PHP中的翻頁顯示信息有問題的解決方法:
因?yàn)轫撁鏇]有取值到URL值的page,所以在函數(shù)內(nèi)的page會(huì)一直是1,所以會(huì)一直是第1頁的數(shù)據(jù)
解決方法,就是在調(diào)用函數(shù)前把page取得就好了!函數(shù)里會(huì)把取到的page值作為全局變量傳入函數(shù)使用的了!
include(“conn.php”);
$nump=mysql_query(“SELECT * FROM `test`”);
$total=mysql_num_rows($nump);
//調(diào)用pageft(),每頁顯示10條信息(使用默認(rèn)的20時(shí),可以省略此參數(shù)),使用本頁URL(默認(rèn),所
以省略掉)。
$page=$_GET[page];//------------------------------在這里加入這行就OK了!
_PAGEFT($total,5);
echo $pagenav;
$query=mysql_query(“SELECT * FROM `test` limit $firstcount,$displaypg ”);//---見下面 while($row=mysql_fetch_array($query)){
echo “
”.$row[name].“ | ”.$row[sex];
}
以上的調(diào)試方法,其實(shí)你只要學(xué)下張老師把sql語句輸出來看下,你就知道是怎么回事了!
echo $sql=“SELECT * FROM `test` limit $firstcount,$displaypg ”;
$result=mysql_query($sql);
----------
==========
分頁有問題的朋友,不妨看下如下:
關(guān)于分頁,這有一篇論壇朋友的學(xué)習(xí)心得,學(xué)習(xí)下,你也許有所得:
另有一篇本人轉(zhuǎn)發(fā)上去的分頁講解:
----------
==========
關(guān)于:mysql_fetch_array
mysql_fetch_array 調(diào)用一次會(huì)把指針指向的記錄放入數(shù)據(jù),并指向下一條記錄
======================....回復(fù)的太多了,總結(jié)又需較多時(shí)間,暫時(shí)總結(jié)到此,總結(jié)未完,待續(xù).....