第一篇:一個自己學習總結的php類學習筆記
1,類:類是一組具有相同數據結構和相同操作的對象的集合,類是對象的抽象,他將一組數據屬性和在數據上的一組合法操作抽象封裝,類好比是一個對象模板,基于類就可以生成多個具有不同屬性值的對象。
2,創建類:
Class classname
{
}
3,為該類添加屬性和方法:只需要在類中聲明變量即可。聲明了屬性之后可以獲取該屬性的值。
⑴創建屬性:Class classname
{
Var $myName;
Var $myAge;
}
⑵創建方法:class classname
{
Var $myName;
Var $myAge;
Function getName()
{
}
Function getAget($arg1,$arg2)
{
}
}
注:以上創建了兩個類的方法,方法名稱分別為:getName,getAge
4,構造函數:大多數的類都有構造函數,當一個類實例被調用時,將調用構造函數,通常在構造函數中將執行一些初始化的操作。
⑴在類中聲明構造函數:同聲明其他函數一樣,但是構造函數的名稱是固定的。即函數名必須為:__construct()
注:構造函數可以由編程人員主動調用,但大部分時候,都是在創建類對象實例的時候自動調用。構造函數也可以傳遞參數,這些參數可以在調用類的時候傳遞。
聲明構造函數的方法:
Class classname
{
Function __construct($param)
{
代碼
}}
⑵析構函數:是一種當對象被銷毀時,無論使用了unset()或簡單的脫離范圍,都會被自動調用的函數。
與構造函數的名稱類似,一個類的析構函數名稱必須是_destruct()
5,類的實例化:聲明了一個類之后,如果要使用該類,必須創建該類的一個實例,實際上也可以將該類作為一個變量,在使用之前必須手動定義。用關鍵字“new”來創建
一個類的實例。
Class classname
{
Function __construct($myName)
{echo(“我的名字是:$myName
”);}
}
$name1=new myName(“小豬”);
$name2=new myName(“小狗”);//創建了2個該類的實例
?>
注:new myName(“小豬”)中的參數“小豬”會被 自動傳遞到構造函數,然后構造函數直接使用該參數。
6,使用類的屬性:
在一個類中訪問類成員變量有一個特殊的指針:$this通過該指針可能方便的訪問類屬性或是給類屬性賦值。
Class classname
{
Var $myattrib;//定義屬性
Function operate($myparam)//為類創建方法
{
$this->myattrib=$myparam;//設置屬性值為$myparam
Echo $this->myattrib;//輸出屬性值
}
}
⑴如果要在類的外部訪問一個類的屬性,需要確定該屬性能否被外部訪問。因為在類中定義的屬性可以設置外界訪問的權限。
以上對屬性$myarrtib進行限制,外界可以直接訪問:
$newclass =new classname();//創建一個類classname實例
$newclass->myattrib=”小馬”;//給屬性賦值
Echo $newclass->myattrib;//輸出屬性
⑵從類的外部直接訪問類的屬性不是一個好的方法,面向對象方法的一個優點就是使用類的封裝。可以通過使用__get()和__set()函數來實現對該類屬性的訪問。
Class classname
{
Var $myattrib;//定義屬性
Function __get($attribName)//獲取屬性值的函數
{
Return $this->attribName;//返回該屬性的值
}
Function __set($arrtibName,$value)//設置屬性值的函數
{
$this->$attribName=$value;//設置屬性值
}
}
注:__get函數只有一個參數,該參數用來傳遞屬性的名稱,__set函數有兩個參數,第一個參數為屬性的名稱,第二個參數為要設置的屬性的值。可以通過這兩 個函數來檢查和設置任何屬性的值。
7,類的訪問控制:
Php5 支持的3 種控制符:
⑴public(默認的)public表示該屬性和方法在類的內部或外部都可以直接被訪問。
⑵private 表示該屬性和方法只能在類的內部進行訪問。如果沒有使用__get()和__set(),則可能對所有的屬性都使用這個關鍵字,也要選擇部分方法為私有,但私有的屬性和方法不能被繼承。
⑶Protected 表示被標記的屬性或方法只能在類的內部進行訪問,他也存在于任何子類中。Class classname
{
Public $myattrib;
Public function __get($attribName)//獲取屬性值的函數
{
Return $this->$attribName;//返回該屬性值
}
Public function __set($attribName,$value)//設置屬性值的函數
{
This->$attribName=$value;//設置屬性值
}
}
8,類方法的調用:
Class classname
{
Var $myAttrib;
Function func_1($param)//函數func_1
{
代碼
}
Function func_2($param1$param2)
{
代碼
}
Function func_3($param1$param2)
{
代碼
Return backvalue;
}
}
調用以上類的3個函數:
$newclass->func_1(“123”);
$newclass->func_2(“123”,”abc”);
$myvalue=$newclass->func_3(“123”,”abc”);//調用func_3并獲取返回值。
9,有關類的代碼:
$this通過該指針可能方便的訪問類屬性或是給類屬性賦值。class Employee//創建一個類“Employee”
{
var $empno;// 員工人數//定義類的屬性
var $empnm;// 員工姓名
function add_employee($in_num, $in_name)//創建類的方法為“add_employee”
{
$this->empno = $in_num;//給類的屬性賦值
$this->empnm = $in_name;
}
function show()//創建類的方法為“show”
{
echo “$this->empno, $this->empnm”;//輸出屬性值
return;
}
function changenm($in_name)
{
$this->empnm = $in_name;}
}
$sbabu = new Employee;
$sbabu->add_employee(10,“sbabu”);$sbabu->changenm(“babu”);$sbabu->show();
第二篇:php學習總結
調試/*………*/ //…….#..........插入時考慮清楚字段類型避免插入后出現缺值,亂碼
@ 屏蔽錯誤or die 條件顯示
以前學習php類的總結:
1.php中不能重載,但是能用子類覆蓋父類的方法名稱來實現新的重載
1.1 在子類中調用父類的覆蓋部分可以使用 父類名稱::方法名稱();
2.final 只能定義類和方法,不能使用final定義成員屬性,因為final是常量的意思,在php里定義常量使用的是define函數
2.1 final關鍵字標記的類不能被繼承
2.2 final關鍵字標記的方法不能被子類重寫
3.const是一個定義常量的關鍵字,在php中定義常量使用的是define()函數,但是在類里定義常量使用的是“const” 這個關鍵字
3.1在程序中不能修改它的值。
3.2 訪問const 修飾的成員屬性要使用類名,在本類的方法里使用“self”關鍵字,但不使用“$”符號,也不能使用對象來訪問。
4.static關鍵字可以描述類中的成員屬性和成員方法
4.1 static 的成員屬于類,而不屬于任何對象,4.2 static的成員是在類第一次被加載的時候分配的空間,其他類無法訪問的,只對類的實例共享,能一定程度對類該成員形成保護
4.3 靜態成員放到了“初始化靜態段”,在類第一次加載的時候放入的,可以讓堆內存里的每個對象共享。所以在靜態方法里,可以使用這個方法所在的類的“類名”,也可以使用“self”來訪問其他靜態成員。“self”代表這個靜態方法所在的類。
4.3.1 在類里的靜態方法是不能訪問類的非靜態成員的。
4.3.2 在類的非靜態方法里可以訪問靜態成員:”self:成員屬性“;
4.4類的靜態變量,非常類似全局變量,能夠被所有類的實例共享,類的靜態方法也是一樣,類似于全局函數。
4.5 在類內函數訪問靜態變量時前面加self::靜態函數
4.6 靜態變量可以在類外直接訪問,訪問方法是類名::靜態變量
4.7 靜態函數可以在類外直接訪問,訪問方式是類名::靜態函數
4.8 在類內靜態函數訪問另一個靜態函數時使用 類名::靜態函數名
4.8.1 靜態函數在類內訪問靜態變量時,訪問方式是類名::靜態變量
4.8.2 靜態函數在類內訪問靜態變量時,訪問方式除了是類名::靜態變量外,還可以使用self::靜態變量
4.9 在類內靜態函數訪問另一個靜態函數時除了使用 類名::靜態函數名外,還可以使用self::靜態函數名,也可以直接調用靜態函數
4.10 靜態函數內不能訪問非靜態變量
4.11 在類內靜態函數不能使用$this->非靜態函數名訪問非靜態函數,可以使用self::非靜態函數名
4.12
5.類里的”$this“,在php里面提供了一個本對象的引用$this,每個對象里面都有一個對象的引用$this來代表這個對象,完成對象內部成員的調用。
5.1 $this 就是對象內部代表這個對象的引用。
6.類里“self”,self 和$this相似,只不過self是代表這個靜態方法所在的類,所以在靜態方法里,可以使用這個方法所在的類的”類名“,也可以使用“self”來訪問其他的靜態成員,通常使用后者”self::成員屬性“。
7.類里”__“開頭的函數名
7.1類里”__“開頭的函數名都是在某一時刻不同情況下自動調用執行的方法。
7.2__toString()方法也是自動被調用,是直接輸出對象引用時自動調用的。比如“$p = new Person()”,直接用echo輸出$p會產生錯誤,如果在類里定義了__toString()方法,再用echo直接輸出對象引用的時候就不會產生錯誤了
8.對象串行化
8.1 __sleep()方法,在對象串行化的時候,會調用一個__sleep()方法來完成一些睡前的事情,__sleep()函數不接受任何參數,但返回一個數組,其中包含需要串行化的屬性。未被包含的屬性降在串行化時被忽略,如果沒有__sleep()方法,php將保存所以屬性.8.2 __wakeup()方法,在重新醒來時,即由二進制串重新組成一個對象的時候,則會自動調用__wakeup(),做一些對象醒來就要做的動作。
8.3 有時你可能需要一個對象在反串行化后立即執行.為了這樣的目的,PHP會自動尋找__sleep和__wakeup方法.9.protected 成員能被同個類中的所有方法和繼承出的類的中所有方法訪問到,不能被父類的實例直接訪問。protected and public 可以動態綁定
10.private 大部分private屬性仍然可以被外部代碼共享.解決方法是用一對public方法,一個是get(獲取屬性的值),另一個是set(設置屬性的值).10.1private 不可以動態綁定。Private成員只存在于它們所在的類內部.不像public和protected成員那樣,PHP模擬靜態綁定.10.2 什么時候用到private?private成員只有當你不想讓子類繼承改變或特殊化父類的行為時才用到,這種情況比你想像的要少,通常來說,一個好的對象分層結構應當允許絕大多數功能被子類特殊化,改進,或改變—這是面向對象編程的基礎之一。一定的情況下需要private方法或變量,例如當你確信你不想允許子類改變父類中的某個特定的部份。
11.抽象類:抽象方法是就像子類中一般的方法的占位符(占個地方但不起作用),它與一般方法不同—沒有任何代碼.如果類中存在一個或更多抽象方法, 那么這個類就成了抽象類.你不能實例化抽象類.你必須繼承它們,然后實例化子類.你也可以把抽象類看成是子類的一個模板.如果你覆寫所有的抽象方法, 子類就變成一個普通的類.如果沒有覆寫所有方法, 子類仍是抽象的.如果一個類中中包含有抽象方法(哪怕只有一個), 你必須聲明這個類是抽象的, 在class關鍵字前加上abstract.聲明抽象方法的語法與聲明一般方法不同.抽象方法的沒有像一般方法那樣包含在大括號{}中的主體部份,并用分號;來結束.12.接口:如果你建立了一個只有抽象方法的類,你就定義了一個接口(interface).為了說明這種情況, PHP中有interface 和implements關鍵字.你可以用interface來代替抽象類, 用implements來代替extends來說明你的類定義或使用一個接口.例如, 你可以寫一個myClass implements myIterface.這兩種方法可以依個人偏愛來選擇.12.1 如果接口中出現非抽象方法.會報錯
12.2 接口中的方法默認是public 型的.其它類型的修飾符,不能修飾接口中的抽象方法.12.3 即使接口中所有的方法都是抽象方法,也不能使用 abstract 修飾.也不能用final
12.4 即使接口中所有的方法都是抽象方法,在接口中,可以聲明靜態方法.12.5 在接口中可以有常量,e.g.:
interfaceUser{
const MAX_GRADE = 99;
function getName();
function setName($_name);
}
?>
13.Namespace關鍵字給一塊代碼命名.在這個代碼塊外部,腳本必須用操作符::加上命名空間的名稱來引用這個代碼塊.引用靜態的類成員也是用相同的方法.在命名空間內代碼不需要聲明命名空間, 它本身就是默認的.這種方法比添加前綴的方法好.你的代碼可由此變得更加緊湊和可讀.你可能想知道是否可以建立分層的(嵌套的)命名空間.答案是不可以.但你可以在命名空間名稱后加上冒號, 你可以再次調用在名稱中不包含冒號的變量,函數和類.命名空間允許存在冒號,只要不是第一個字符和最后一個字符或接著另一個冒號.命名空間的名稱中的冒號對于PHP來說沒有任何意義, 但如果你用他們來區分邏輯上的區塊, 他們可以很好地說明你的代碼中的父子(parent-child)關系.14.__toString()打印對象會調用它的__toString方法.15.不能實例化的類
//
//當__construct()為public時可以實例化
class A{
private function __construct(){}
}
$a = new A();//fail
?>
15.1
//static的方法留給外部訪問.
class A{
private function __construct(){}
static function getClassA(){
return “這里是后門,可以通過這里進入類內部..”;
}
}
echo A::getClassA();
?>
15.2
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內部返回實例.
class A{
private function __construct(){
echo “this is construction
n”;
}
static function getClassA(){
$a = new A();
return $a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對象.”;
}else{
echo “
$a1 $a2 不是一個對象.”;
}
//this is construction
//this is construction
//$a1 的類是 A , $a2 是 A
//$a1 $a2 不是一個對象.?>
15.3
//不能用new實例化的類.
//static的方法留給外部訪問.
//在方法內部返回實例.
//定義靜態屬性保證這個實例能被靜態方法調用.
//增加判斷部分.
class A{
private static $a = null;
private function __construct(){}
static function getClassA(){
if(null == self::$a){
self::$a = new A();
}
return self::$a;
}
}
// 看到這里確實返回的是 A 的實例.但不是同一個對象.$a1 = A::getClassA();
$a2 = A::getClassA();
echo “$a1 的類是 ”.get_class($a1).“ , $a2 是 ”.get_class($a1);if($a1 === $a2){
echo “
$a1 $a2 指向同一對象.”;
}else{
echo “
$a1 $a2 不是一個對象.”;
}
//$a1 的類是 A , $a2 是 A
//$a1 $a2 指向同一對象.?>
第三篇:PHP學習推薦
PHP學習推薦
PHP,是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在服務器端執行的嵌入HTML文檔的腳本語言,現在越來越多的人加入到了php的大家庭中,其中很多人只是淺嘗輒止,為何會如此呢?最大的障礙莫過于學習的過程枯燥乏味,從而失去學習興趣,那么小編就自己的經驗來說說怎樣學習php吧。
學習方法之視頻教程
相對于讀書來說,我更喜歡看視頻學習,可能小編我對影像比文字記憶更加深刻吧。每看完一個視頻教程,我都會閉上眼睛休息一會,把剛才看的內容消化消化,然后再開始練習剛才看過的內容,盡可能不邊看邊做,因為這樣學的快同樣也忘得快,如果實在想不起來的話,可以再打開教程看一遍,切記不可囫圇吞棗,好高騖遠,要穩扎穩打,把你看過的教程切切實實的記在心里。只有一步一個腳印,你的學習之路才能走的更遠,否則的話,你走的越遠,越會覺的道路是如此艱辛,或許你就會放棄學習。那么都有哪些視頻教程能幫我們學習php呢,小編我就為大家介紹幾個吧:
php100
LAMP兄弟連
李炎恢的php
學習方法之看書: 1.《PHP與MySQL程序設計(第4版)》
2.《PHP Web 2.0 開發實戰》
3.《PHP高級程序設計:模式、框架與測試》
4.《PHP 5 高級應用開發實踐》
5.《細說php》
學習過程中不要死記語法,要多動手,多練習,當你遇到問題的時候,首先嘗試自己解決。多用google,baidu,網絡是一個大知識庫,是最好的老師,你遇到的問題,別人也遇到過,多去搜索一下吧.多閱讀別人的源代碼,要看懂別人的設計思想,不斷融為已用.
第四篇:PHP 學習筆記(二):表單:表單處理,表單驗證,表單實例總結
PHP 學習筆記
(二):表單:表單處理,表單驗證,表單實例
PHP 表單
PHP 超全局變量 $_GET 和 $_POST 用于收集表單數據(form-data)。1 GET vs.POST
GET 和 POST 都創建數組(例如,array(key => value, key2 => value2, key3 => value3, …))。此數組包含鍵/值對,其中的鍵是表單控件的名稱,而值是來自用戶的輸入數據。
GET 和 POST 被視作 GET和_POST。它們是超全局變量,這意味著對它們的訪問無需考慮作用域并且應該對其進行驗證。如果未提交,則跳過驗證并顯示一個空白表單。
PHP 表單驗證輸入字段
從上一節中的驗證規則中,我們看到 “Name”, “E-mail” 以及 “Gender” 字段是必需的。這些字段不能為空且必須在 HTML 表單中填寫。
在上一節中,所有輸入字段都是可選的。在下面的代碼中我們增加了一些新變量:$nameErr、$emailErr、$genderErr 以及 $websiteErr。這些錯誤變量會保存被請求字段的錯誤消息。我們還為每個 $_POST 變量添加了一個 if else 語句。這條語句檢查 $_POST 變量是否為空(通過 PHP empty()函數)。如果為空,則錯誤消息會存儲于不同的錯誤變量中。如果不為空,則通過 test_input()函數發送用戶輸入數據:
$nameErr = $emailErr = $genderErr = $websiteErr = “";$name = $email = $gender = $comment = $website = ”“;
if($_SERVER[”REQUEST_METHOD“] == ”POST“){
if(empty($_POST[”name“])){
$nameErr = ”Name is reqwww.tmdps.cnment“])){
$comment = ”“;
} else {
$comment = test_input($_POST[”comment“]);
}
if(empty($_POST[”gender“])){
$genderErr = ”Gender is required“;
} else {
$gender = test_input($_POST[”gender“]);
} } ?> PHP驗證 E-mail 和 URL
本節展示如何驗證名字、電郵和 URL。
PHP驗證 E-mail
以下代碼展示的簡單方法檢查 e-mail 地址語法是否有效。如果無效則存儲一條錯誤消息:
$email = test_input($_POST[”email“]);if(!preg_match(”/([w-]+@[w-]+.[w-]+)/“,$email)){
$emailErr = ”無效的 email 格式!“;}
PHP驗證 Name、E-mail、以及 URL
現在,腳本是這樣的:
$nameErr = $emailErr = $genderErr = $websiteErr = ”“;$name = $email = $gender = $comment = $website = ”“;
if($_SERVER[”REQUEST_METHOD“] == ”POST“){
if(empty($_POST[”name“])){
$nameErr = ”Name is required“;
} else {
$name = test_input($_POST[”name“]);
// 檢查名字是否包含字母和空格
if(!preg_match(”/^[a-zA-Z ]*$/“,$name)){
$nameErr = ”Only letters and white space allowed“;
}
}
if(empty($_POST[”email“])){
$emailErr = ”Email is required“;
} else {
$email = test_input($_POST[”email“]);
// 檢查電郵地址語法是否有效
if(!preg_match(”/([w-]+@[w-]+.[w-]+)/“,$email)){
$emailErr = ”Invalid email format“;
}
}
if(empty($_POST[”website“])){
$website = ”“;
} else {
$website = test_input($_POST[”website“]);
// 檢查 URL 地址語言是否有效(此正則表達式同樣允許 URL 中的下劃線)
if(!preg_match(”/b(?:(?:https?|ftp)://|www.tmdps.cnment“])){
$comment = ”“;
} else {
$comment = test_input($_POST[”comment“]);
}
if(empty($_POST[”gender“])){
$genderErr = ”Gender is required“;
} else {
$gender = test_input($_POST[”gender“]);
} } ?>
接下來向您講解如何防止表單在用戶提交表單后保留輸入字段中的值。
PHP-保留表單中的值
如需在用戶點擊提交按鈕后在輸入字段中顯示值,我們在以下輸入字段的 value 屬性中增加了一小段 PHP 腳本:name、email 以及 website。在 comment 文本框字段中,我們把腳本放到了 之間。這些腳本輸出 $name、$email、$website 和 $comment 變量的值。
然后,我們還需要顯示選中了哪個單選按鈕。對此,我們必須操作 checked 屬性(而非單選按鈕的 value 屬性):
Name: “>
E-mail: “>
Website: “>
Comment:
Gender:
value=”female“>Female value=”male">Male
echo
第五篇:PHP學習總結的一些經驗
其實我也是一樣很新的新手,上PHP100學習視頻并在論壇里學習其實也就是一個月前的事.雖然早在8月份花過一個星期看完w3school的PHP教 程,了解了許多PHP知識.但始終是缺乏一個與眾多朋友學習和交流的平臺,所以一下子在幾周后又把PHP又忘得七七八八了,有幸在10月尾了解到了 PHP100視頻和論壇,不僅可以系統地學習下PHP,更可以和很多朋友一起學習成長這更是件好事.在php100視頻中學到了許多,而 論壇中看帖和回帖也更讓我鞏固了學習的知識并讓我學到了很多,這不僅不會讓我又把PHP知識快速忘記(因為工作中用是ASP,而PHP不會在工作中用,所 以忘得快),反而在取得進步的同時,我也能幫助一些人,這也是一樣是學習勝利的過程,我喜歡并享受其中.以下是我上論壇以來的回復總結,將不斷持續總結.希望有利于與我一樣的新手一起成長.首先來個,題前語:
任何的學習,都需要自信,再新的新手也應該拋棄心中的恐懼,有時關鍵在于你心平下來,踏入學習后,你將慢慢化開迷惑,獲得信心,贏取自信!讓我們共同進步.----------
==========
Undefined index問題
是運行的時候出現類似:Notice: Undefined index: action in D:wampwww.tmdps.cn/read.php?tid=15843&page=1#138857
是 php 配置的事情
這個錯誤是因為 php 頁面中的變量沒有初始化而導致的!
可以通過設置PHP.INI搞好,也可以在變量前面 加上一個 @ 就可以解決這個地方的問題了!
如這里指示第三行
Notice: Undefined index: action in D:wampwww.tmdps.cn/2009/0617/6463.php
----------
==========
遇到頁面明確提示你錯誤的,并有顯示如何錯的,建議先把語句復制部分重點詞句或全部語句到百度或
google,更快速讓在你排查錯誤找到方法.其實這也是一種高效有益的學習方法,畢竟在工作中,遇到些沒
遇過的新問題,有時都需要借助網上的資源給自己靈感和助力,本人就一天不下幾十次用百度搜索.如程序中遇到諸如含提示:
顯示的錯誤為:
Parse error: syntax error, unexpected $end in D:wampwwwtestlist.php on line 21
那么你就可以把 syntax error, unexpected $end 作為關鍵詞到百度搜索,那么你即刻可以得到助力甚
至答案.以上那句舉例的錯誤是因為:短標簽沒有打開.解決方法是打開php.ini把short_open_tag短標簽
打開,重啟服務即可
----------
==========
提示的時候,有時順便把代碼帖上帖子是必要的,這樣才能快速地在別人的幫助下問題得到解決
----------
==========
對單引號和雙引號有迷惑,大家可以看這篇文章解下惑:
----------
==========
在調試程序時,經常要用到echo 你的sql語句來,檢查傳值后,sql變成了什么樣的情況,以便排查錯誤.----------
==========
向數據庫表插入數據
INSERT INTO 語句用于向數據庫表添加新紀錄。
語法
INSERT INTO table_name VALUES(value1, value2,....)--此種情況是需要按你表中所有字段的順
序全部value填上!
您還可以規定希望在其中插入數據的列:
INSERT INTO table_name(column1, column2,...)VALUES(value1, value2,....)--張老師明確建
議用此種方法!
----------
==========
有人疑惑,$_POST或$GET取得時的引號問題:其實是要不要引號,單引號或雙引號都是沒有問題的.如, $_POST[name]和$_POST['name']和$_POST[“name”]都是在windows下一樣的,在linux下情況具體沒
用過,不知道,還望高手告知.----------
==========
針對多數人的留言板課程中許多問題(如,insert into存不進數據問題)的總結:
1.檢查你數據庫表的結構是否正確,如id是否設為自增
2.insert into語句是否正確,如單詞是否正確,insert into...values...3.是否將`(反斜點,在1鍵前)號和'(引號)是否使用位置正確,正確的方法是:`應該放在表和字段邊,而'
是放在字符串型(或者說是非數字型)的值邊上
4.檢查你的各語句,是否在結尾將分號(;)正確結束
5.檢查你的submit表單項的name值是否你判斷的取值,如
value=“提交”>時,你的判斷是否提交應是 if($_POST[submit]){...};當你的是
type=“submit” name=“othername” value=“提交”>時,你的判斷是否提交應是 if($_POST
[othername]){...}
6.檢查你的$_POST是否大寫,當你寫成$_post是不行的,因為$_GET,$_POST等,都是PHP系統環境的硬性用
法
7.用echo 輸出你的sql檢查傳值情況
8.檢查你的短標簽是否打開
9.注意你的method是get還是post
10.檢查你的表單相關單詞或引號是否書寫正確.很多莫名其妙的問題,多是細節問題.要小心查對才能看
出來.----------
sql語句中表名和字段名在windows的情況下是可以不加小斜點(鍵盤左上角1鍵前的那個點鍵)的,但聽說
在linux中不加會引出些問題,兼容的寫法是有小斜點.如:windows下:
$sql=“select * from table ”
和
$sql=“select * from `table` ”
是效果一樣的再次重點提示是:
`(反斜點,在1鍵前)號和'(引號)使用位置,正確的方法是:`應該放在表和字段邊,而'是放在字符串型(或
者說是非數字型)的值邊
----------
==========
php100第十三講的page.PHP中的翻頁顯示信息有問題的解決方法:
因為頁面沒有取值到URL值的page,所以在函數內的page會一直是1,所以會一直是第1頁的數據
解決方法,就是在調用函數前把page取得就好了!函數里會把取到的page值作為全局變量傳入函數使用的了!
include(“conn.php”);
$nump=mysql_query(“SELECT * FROM `test`”);
$total=mysql_num_rows($nump);
//調用pageft(),每頁顯示10條信息(使用默認的20時,可以省略此參數),使用本頁URL(默認,所
以省略掉)。
$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];
}
以上的調試方法,其實你只要學下張老師把sql語句輸出來看下,你就知道是怎么回事了!
echo $sql=“SELECT * FROM `test` limit $firstcount,$displaypg ”;
$result=mysql_query($sql);
----------
==========
分頁有問題的朋友,不妨看下如下:
關于分頁,這有一篇論壇朋友的學習心得,學習下,你也許有所得:
另有一篇本人轉發上去的分頁講解:
----------
==========
關于:mysql_fetch_array
mysql_fetch_array 調用一次會把指針指向的記錄放入數據,并指向下一條記錄
======================....回復的太多了,總結又需較多時間,暫時總結到此,總結未完,待續.....