php基礎急需注意的地方,php需要什麼基礎

本文目錄一覽:

php新手如何入門

PHP的背景恐怕就不用贅言了,我相信大家選擇一種語言,並不是看它的背景和悠久歷史,更重要的是看它的實用性,華而不實的語言哪怕是再輝煌的歷史,也畢將步向沒落,可喜的是PHP經受住了考驗,也因此,它確實是一種值得學習的語言。

一直是聽從別人的經驗長大的,也因此在前輩們的經驗里讓少走了許多的彎路,更快的步入了正規,在此向那些我至盡不知道其名字的前輩們道聲謝謝,在的眼裡, 幫助不分大小,只要是幫助,總會讓的心裏暖融融的,我想,前輩們幫助我,並不是為了得到我的一句謝謝,更多的是出於一種責任感和對的期望,所以我想,只有 學好PHP,才能對得起前輩們的汗水。

正如我所說的,也終於感覺到了一種責任感,不知道自己的經驗到底能幫助新手多少,但是明白,現在到了履行責任的時候了,我有必要把自己的經驗告訴給所有希望學好PHP的人,只有這樣才能讓中國的PHP不斷的進步,不斷的發展,在世界上佔據一席之地。

學習PHP的這段期間,感覺國內的PHP環境越來越成熟,規範也在逐漸的健全,PHPCHINA的成立,標誌着與官方直接掛鈎的PHP機構在中國正式落戶了,在此獻上遲到的掌聲!

好的,切入正題:

我想在講述自己的學習方式前,對那些期望能從我的文章中獲得有用信息的人說一句心裏話:

的文章不會對您的學習起到實質性的作用,您能否成功,還得靠自己的,堅持,堅持,再堅持,就是步入成功的不二法門。

我先把我自己學習PHP的過程做一下概括:

(1)熟悉HTML/CSS/JS等網頁基本元素,完成階段可自行製作完整的網頁,對元素屬性達到熟悉程度

(2)理解動態語言的概念,運做機制,熟悉PHP語法

(3)學習如何將PHP與HTML結合起來完成簡單動態頁面

(4)接觸MYSQL,開始設計數據庫程序

(5)不斷鞏固,摸透大部分PHP常用函數,並可理解OOP,MYSQL優化,以及模板

(6)完成一個功能齊全的動態站點

我的這套線路可能跟許多學習PHP的愛好者不謀而合,這也算是一個循序漸進的學習過程,不過新手不要看到上面的概括就以為學習蠻簡單的,在此不得不對您稍微潑一下冷水,任何東西其實都不簡單,即使是小吃部的燒餅也不是一下子就會做成的。

我先解釋一下我的學習思路。

首先,理解網站這一概念之後不難看出,任何網站都是由網頁組成的,也就是說想完成網站,必須先學會做網頁,因此必須要掌握了HTML,才能為今後製作網站打下基礎。

在學習HTML中我想邊學邊做是最有效的方式,當然這一方式對於學習PHP同樣是最有效的。

HTML中的任何元素都要親自實踐,只有明白了什麼元素會起到什麼效果之後,你才會記憶深刻,而一味的啃書,絕對是不行的,我想大部分新手之所以覺得概念難學,大部分是一個字「懶」,懶是阻止進步的最大敵人,所以克服掉懶的習慣,才能更快的學好一樣東西。

也許您在學習PHP的時候只想儘快的開發一個網站,也就會想我做網站,幹嘛要學什麼網頁這些小兒科?不難看出,眼高手低的新手不在少數,這種思想無疑於建造空中樓閣,你不建地基,何來的房頂呢?

OK,掌握靜態網頁的製作技術是學習開發網站的先決條件,這一點就講到這裡,因為這篇文章不是教程文章,也就不對技術進行深入的刨析了。

我假設你目前已經可以完成一個靜態頁面了,當然,做的好看難看是另外一說,的第一個網頁也沒好看到哪去,但是「孩子」再丑,咱們做「爹媽」的也不能嫌棄不是?這畢竟是咱的成果。

那麼咱們就開始學習動態語言的概念吧,剛一接觸動態語言,可能很多人都會蒙了,怎麼這亂七八糟的東西,在網頁里顯示的時候卻是另外一碼事?其實這並不算亂 七八糟,你寫的HTML代碼不也一樣是一堆堆的字符嗎?畢竟,代碼並不是作為直接輸出的,而是經過處理的,說白了,HTML是經過HTML解析器,而 PHP當然也就通過PHP解析器了,跟學習HTML一樣的道理,想讓任何的解析器完成操作,就必須使用它們專用的語法結構,所以PHP長相奇怪也就不足為 奇了。

對於PHP的理解是新手最難邁過的一道門檻,不過你應該感到幸運的是PHP已經最大極限的為了新手而努力了,如果你學過其他的語言,也許會覺得PHP的確相當的簡單,但是如果你之前什麼都沒學過,那麼阿彌陀佛,硬着頭皮琢磨吧。

書過三遍自然熟,這個簡單的道理告訴我們,即使你理解不了PHP,但是也必須先跟它混個臉熟,看,一遍遍的看,看的同時一邊琢磨,一邊按照它所教的打代碼,即使你搞不清楚那些代碼到底是幹嘛的,但是起碼你應該找找感覺。

在一段掙扎之後,聰明的你,顯然已經逐漸的開悟了,慢慢的理解了編程的概念,那麼祝賀你,你已經邁出了成功的第一步。

搞清楚HTML和PHP的概念,那麼PHP和HTML混合編程應該不成問題,在這期間,你完全可以讓PHP給你算算一加一等於幾,然後在瀏覽器輸出,不要 覺得幼稚,這的確是跟阿波羅登月一樣,你打的是一小段代碼,但是對於你的編程之路,可是邁出了一大步啊!興奮吧?但是不得不再給你潑點冷水,您還是菜鳥一 個。

高興一段時間就必須繼續努力了,接下來就是學習數據庫了,MYSQL可算是PHP的黃金搭檔了,不過,雖然話是這麼說,你也可能恨不得把MYSQL給生吞活剝了,因為這一行一列的東東簡直讓自己頭暈目眩。

頭暈歸頭暈,目眩歸目眩,你不可能吃飯的時候咬了自己一下舌頭就從此不吃飯了不是?放下畏懼,繼續努力,咱們是來征服它的,而不是被它征服的,振奮起來吧同志。

在一番搏鬥之後,你終於理解了數據庫的概念,而且讓你興奮不已的是你終於可以通過PHP來連接數據庫了,這期間你是怎麼學會的,我們不去考證了,但是事實證明,你已經可以了。

學會了PHP和數據庫的你,無疑是左手拿着MOTOLOLA右手拿着NOKIA,要多瀟洒,有多瀟洒,哈哈,終於學會了,但是可能這個時候,又會有人不經意的拍拍肩膀對你說:哥們,別高興的太早,你還是菜鳥,離學會還差着一大截呢!

等到你發奮努力的學會了用PHP成功的插入,刪除,更新數據的時候,顯然,你已經距離成功指日可待了。

這個時候的你也許是這種狀態:

你會HTML嗎?會,我能編好幾個大表格排板的網頁啦!

你會PHP嗎?會,我會把一加一的運算寫在函數里,然後調用啦!

你會MYSQL嗎?會,我會把我的信息在數據庫里插入刪除啦

那,接下來你該怎麼做呢?我覺得,小試一下身手,大概是沒問題了,那麼交給你個任務,做個留言本吧,這和HELLO WORLD有一比啊!^_^,同是新手面臨的第一道關。

花了一段時間,你終於學會把表單的數據插入數據庫,然後顯示出來了,應該說一個程序的雛形已經誕生了。

但是,你可能瞅瞅東,看看西,人家這個編論壇,那個CMS,還有那啥CRM,我啥時候寫一個呢?

不要急,可以說你的馬步已經扎的差不多了,接下來就要開始練把勢的時候了,如果有條件的話,用筆或者打印一個簡易的PHP手冊在身上,時不時的摸出來看看,記得,去WC也不能放過(^2^)。

再有條件的話,買本書看看吧,《PHP+MYSQL WEB開發(第三版)》號稱聖經級,(也許是個不錯的選擇(聲明:作者沒給我啥好處費,我也不是書托,隔着大老遠,我連他老兄的面都沒見過的說-_-)

鞏固了自己的知識,熟悉了PHP和MYSQL開發的要領之後,再回頭看你寫的那個留言本,你也許會懷疑那真的是你寫的嗎?當然,如果屋裡還有鬼的話,也許是它寫的-_-

這個時候,你的留言本應該加入註冊以及分頁功能了,而如果你更強的話,UI(用戶界面)也可以加強,完成之後,感覺是不是特有成就感?不管怎麼樣,咱好歹 是寫了一個動態網站程序了,放在自己的網站上耍耍吧,讓好朋友來看看,嘿,看咱寫的多棒,然後再在網上宣傳一下。

幾天之後你再打開留言本,哎?哇,一下彈出N多頁面!很明顯,你的留言本並沒有做好安全防範,被人用JS代碼小小的耍了一下,我很同情你這個時候的感受,但是沒有別的辦法了,繼續努力吧!

你發奮努力,熟悉了安全方面的問題,然後又設計了一些程序,感覺還不錯。

那麼接下來,這就算學會啦?NO,NO,NO,還早呢,你至盡還沒碰過OOP之類的吧?模板呢?

恩,學!加緊學呀學,學會了這些之後,你又學會了生成靜態網頁,現在你應該接觸一下XML了,恩,XML也了解了,那麼AJAX你也得接觸接觸吧?AJAX完了….然後…

總而言之,你絕對不會發現你全部都學會了,一些真正的強人總會搞出新玩意來丟給你,你不學就落後了,也印證了前人的經驗,果然是學無止境啊!

我想通過我的一番YY,你也應該大致熟悉了一些學習過程,也許我的過程和你的有些出路,但是不管怎麼樣是殊途同歸,我寫這麼多,也只是給大家一個借鑒的機會,至於好與不好,不敢打包票^0^

看完之後你發現,羅嗦這麼多,對我一點用處沒有啊,我知道該怎麼學,但是我想如何才能更快的學,一周速成,啊不,24小時速成那種,你有沒?

我…….我沒有,但是2分鐘之內把你扁進醫院裏,我倒是有把握-_-

學東西,永遠不要妄想有速成這一說,告訴你了一個方式,但是缺少努力這一環節,那也是白搭。

但是有一點我可以給你保證的就是,你學會了PHP,那麼學其他的語言,肯定速成,反過來也一樣,如果你之前學過其他的語言,那麼學PHP肯定快。

不過語法好學,但是怎麼用語法來實現每個人都有每個人的方式,幾乎是各有千秋。然而借鑒別人成功的代碼,絕對是有益無害,因此,多看那些經過千錘百鍊凝出來的經典代碼,是進階的最好方法。

講了這麼多,無非是想說:學習PHP不僅要掌握方法,更多的是付出汗水,我不希望看到中途放棄的人,相信自己,相信自己的選擇,更要相信自己的能力,如果 自己想放棄,暴力一點的話,就自己抽自己一個嘴巴,然後大吼:別人可以,我為什麼就不可以?(是不是有點閻羅教練的味道,的確是電影看多了,抽嘴巴是會痛 的,各位其實明白這個道理了就行了)

另外要叮囑各位的是,抵禦誘惑,ASP/PHP/JSP/.NET的對比也許會讓你無所適從,你也許學了一半PHP,又開始打C#的主意,或者有人說 JAVA很強,這個時候的你絕對不能動搖,哪怕你真想學,也得學會了PHP。然後再學,見異思遷是最不可取的,狗熊掰玉米就是這個道理,如果經常中途放 棄,只能是一無所獲,還浪費了N多的時間和經歷,得不償失,最重要的是,你會被別人瞧不起,沒有人會喜歡和見異思遷的人交朋友,因為這種人太不安分,太不 可靠,因此,你必須要強迫自己完成自己的目標,哪怕可能會很難受,也得堅持,毅力就是這麼鍛鍊出來的。

學php可以零基礎入門嗎?需要怎麼學呢?

PHP本身可深可淺,如果您自己感覺邏輯思維能力不錯,零基礎入門是可以的。

有如下情況建議考慮:

1.如果是用於工作的話,很難完全迴避HTML、CSS、Javascript,這些不是PHP工程師的工作,可完全不懂干起活來也是麻煩。

2.數據庫,這個必須啊。工程中,寫PHP不涉及數據庫的可能性非常小。

3.基礎的程序邏輯。C也好Basic也罷,如果沒有任何編程基礎,好像一般的PHP書籍還真的很少集中講解程序邏輯。

由於不清楚您說的「零基礎」到底怎麼零法,簡單的建議:

1.先找一本基礎的Web開發書籍,最好是HTML5、CSS、JS全包含的,快速通讀。能懂多少算多少。

2.找一本講MySQL的入門書籍,花點功夫看一下,基本的SQL語句和邏輯要弄清楚。

3.快速通讀譚浩強的C語言程序設計,明白編程是怎麼回事。

然後再進入PHP學習,有不會的地方多聯繫。

php的難點是什麼?要學好PHP主要分為哪幾塊知識?

PHP本身不難,難的是WEB開發需要結合很多知識。大概有:1.HTML(基礎知識)2.CSS (樣式表,基礎知識)3.Javascript(不能或缺,基礎知識)4.PHP(動態語言,基礎知識)5.數據庫(PHP搭配MySQL比較多,幾乎必用) 相關的有:1.了解服務器工作流程,程序運行環境2.額外的客戶端技術,如Ajax,Jquery庫等3.額外的服務器技術,如動態生成圖像、數據庫操作庫等4.以及任何需要用到的技術 一般來說,PHP入門容易,晉級比較難,想專業也比較難。其實任何一門語言都是這樣的。

零基礎學習PHP如何入門?

其實學習PHP只要把握好學習路線,能夠在極短的時間裏完成從新手到熟練的過程。在這裡,小編為大家整理出了學習PHP的路線和具體的課程。

入門:新人必看的PHP基礎知識視頻教程

可掌握PHP基礎知識,了解PHP的基本語法、數組、函數、表單驗證、圖像處理,以及MySQL數據庫等PHP開發過程中所遇到的知識點和基本操作。

進階:PHP如何操作MySQL數據庫視頻教程

利用PHP操作MySQL數據庫教程,MySQL是PHP最合適的搭配,MYSQL開源、跨平台,PHP擴展包對MySQL的支持比較完善。本課程講解MySQL數據庫的基礎知識,以及如何利用PHP來操作MySQL數據庫,實現對數據的調用和修改。

實戰:PHP項目實戰_多用戶留言系統視頻教程

利用PHP基礎課程中的知識,在本課程中創建多用戶留言系統,包括用戶界面設計,註冊,驗證,帖子的寫入、修改等留言系統的必備功能。

進階:PHP進階之面向對象相關視頻教程

學習和了解開發獨立的模板引擎技術,學習三層架構及分層思想和原理,然後通過後面的CMS內容管理系統等課程的實踐來掌握以上知識點。

進階:PHP進階之CMS內容管理系統

CMS內容管理系統具有許多基於模板的優秀設計,可以加快網站開發速度和開發成本,同時易於使用,可開發性強,可分佈式管理,CMS的功能並不只限於文本處理,它也可以處理圖片、Flash動畫、聲像流、圖像、甚至電子郵件檔案等。

ThinkPHP框架講解視頻教程

ThinkPHP是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡的代碼的同時,也注重易用性,並且擁有眾多原創功能和特性。理解ThinkPHP的框架基礎知識,安裝配置,模型的建立、開發及調試。學習ThinkPHP3.2.1的使用方法。

作為一個新手,學習PHP語言需要有學習一門新語言的心態,注意不驕不躁,步步為營,按照方法和步驟去學習,由淺入深的接觸。

新手入門php要學哪些內容呢?

1、WEB基礎

要知道網站是什麼東西,所使用的協議是怎麼工作的,怎樣把網站放在服務器上。

2、HTMLphp

HTMLphp是嵌入在HTML的語言,所以HTML是必須的。可以用HTML寫出簡單的靜態的頁面,放在本機的服務器上看看效果。

3、DIV+CSS

能夠用DIV+CSS布局做出漂亮的精美靜態網頁。

4、php基礎

學習php基礎,如php語法,php變量,php流程控制,php函數,php數組應用,php字符串處理,php常用模塊,php文件處理,php動態圖像處理,會話控制等,就可以把靜態頁面變成動態的。這個階段比較枯燥,主要是記憶,必須能夠熟練應用。

5、MySQL

網站往往包含大量的信息,這些信息不可能都放在程序(php文件)中,需要MySQL來儲存大量的數據信息。

6、Javascript

掌握了以上內容就可以搭建一個php基礎網站,但是還需要靠Javascript來完成網站的特效和信息驗證等。

7、php高級

作為一個可以上線運營的全功能網站,還要繼續學習php高級知識,如php面向對象,數據抽象層PDO,MEMCACHE,高級SESSION,php的設計模式,MVC,smarty模板,主流框架的解讀等內容,這個階段需要多讀優質的開源代碼,多寫代碼。

8、Linux

正如大家所熟知的php較佳的搭配是LAMP(Linux+Apache+MySQL+Php)或LNMP(Linux+Nginx+MySQL+Php),那麼顯然在Linux系統下的php網站比在Windows下兼容性好,基於此我們需要知道在Linux下搭建php環境的方法以及Linux的日常管理命令,以便我們網站的日常管理運營。

9、項目相關

這個階段首先需要了解項目開發流程,需求分析,程序設計說明書,數據庫設計說明書,編碼規範,大流量/大數據架構,MYSQL深度優化,全文索引等內容。

目前為止學到這個階段,已經可以算是php小牛了,要繼續向php大牛進發就需要參與開發大型網站項目,以此練手。北大青鳥認為參與大項目開發,實踐為主。通過這階段的學習就可以自主做企業網站、論壇、網頁遊戲等。

PHP入門基礎教程

PHP入門基礎教程大全

PHP於1994年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。後來又用C語言重新編寫,包括可以訪問數據庫。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和數據庫連接,產生簡單的動態網頁程序。為幫助大家入門學習php,我為大家分享PHP入門知識教程如下:

1、嵌入方法:

類似ASP的%,PHP可以是?php或者是?,結束符號是?,當然您也可以自己指定。

2、引用文件:

引用文件的方法有兩種:require 及 include。

require 的使用方法如 require(“MyRequireFile.php”); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。

include 使用方法如 include(“MyIncludeFile.php”); 。這個函數一般是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。

3、注釋方法:

?php

echo “這是第一種例子。\n” ; // 本例是 C++ 語法的注釋 (PHP的注釋跟C差不多!)

/* 本例採用多行的

注釋方式 */

echo “這是第二種例子。\n” ;

echo “這是第三種例子。\n” ; # 本例使用 UNIX Shell 語法注釋

?

4、變量類型:

$mystring = “我是字符串” ;

$NewLine = “換行了\n” ;

$int1 = 38 ;

$float1 = 1.732 ;

$float2 = 1.4E+2 ;

$MyArray1 = array( “子” , “丑” , “寅” , “卯” );

這裡引出兩個問題,首先PHP變量以$開頭,第二PHP語句以;結尾,可能ASP程序員會不適應。這兩個遺漏也是程序上大多錯誤所在。

5、運算符號:

數**非法字眼已被屏蔽**算:

符號     意義

+       加法運算

–        減法運算

*        乘法運算

/        除法運算

%      取餘數

++     累加

—       遞減

字符串運算:

運算符號只有一個,就是英文的句號。它可以將字符串連接起來,變成合併的新字符串。類似ASP中的

?

$a = “PHP 4” ;

$b = “功能強大” ;

echo $a.$b;

?

這裡也引出兩個問題,首先PHP中輸出語句是echo,第二類似ASP中的%=變量%,PHP中也可以?=變量?。

邏輯運算:

符號 意義

小於

大於

= 小於或等於

= 大於或等於

== 等於

!= 不等於

而且 (And)

and 而且 (And)

或者 (Or)

or 或者 (Or)

xor 異或 (Xor)

! 不 (Not)

學習目的:掌握php的流程控制

1、if..else 循環有三種結構

第一種是只有用到 if 條件,當作單純的判斷。解釋成 “若發生了某事則怎樣處理”。語法如下:

if (expr) { statement }

其中的 expr 為判斷的條件,通常都是用邏輯運算符號當判斷的條件。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。

範例:本例省略大括號。

?php

if ($state==1)echo “哈哈” ;

?

這裡特別注意的是,判斷是否相等是==而不是=,ASP程序員可能常犯這個錯誤,= 是賦值。

範例:本例的執行部分有三行,不可省略大括號。

?php

if ($state==1) {

echo “哈哈 ;

echo “br” ;

}

?

第兩種是除了 if 之外,加上了 else 的條件,可解釋成 “若發生了某事則怎樣處理,否則該如何解決”。語法如下

if (expr) { statement1 } else { statement2 } 範例:上面的例子來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括號。

?php

if ($state==1) {

echo “哈哈” ;

echo “br”;

}

else{

echo “呵呵”;

echo “br”;

}

?

第三種就是遞歸的 if..else 循環,通常用在多種決策判斷時。它將數個 if..else 拿來合併運用處理。

直接看下面的例子

?php

if ( $a $b ) {

echo “a 比 b 大” ;

} elseif ( $a == $b ) {

echo “a 等於 b” ;

} else {

echo “a 比 b 小” ;

}

?

上例只用二層的 if..else 循環,用來比較 a 和 b 兩個變量。實際要使用這種遞歸 if..else 循環時,請小心使用,因為太多層的循環容易使設計的邏輯出問題,或者少打了大括號等,都會造成程序出現莫名其妙的問題。

2、 for 循環就單純只有一種,沒有變化,它的語法如下

for (expr1; expr2; expr3) { statement }

其中的 expr1 為條件的`初始值。expr2 為判斷的條件,通常都是用邏輯運算符號 (logical operators) 當判斷的條件。expr3 為執行 statement 後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。

下例是用 for 循環寫的的例子。

?php

for ( $i = 1 ; $i = 10 ; $i ++) {

echo “這是第”.$i.”次循環br” ;

}

?

3、 switch 循環,通常處理複合式的條件判斷,每個子條件,都是 case 指令部分。在實作上若使用許多類似的 if 指令,可以將它綜合成 switch 循環。

語法如下

switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }

其中的 expr 條件,通常為變量名稱。而 case 後的 exprN,通常表示變量值。冒號後則為符合該條件要執行的部分。注意要用 break 跳離循環。

?php

switch ( date ( “D” )) {

case “Mon” :

echo “今天星期一” ;

break;

case “Tue” :

echo “今天星期二” ;

break;

case “Wed” :

echo “今天星期三” ;

break;

case “Thu” :

echo “今天星期四” ;

break;

case “Fri” :

echo “今天星期五” ;

break;

default:

echo “今天放假” ;

break;

}

?

這裡需要注意的是break;別遺漏了,default,省略是可以的。

很明顯的,上述的例子用 if 循環就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程序的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。

學會構建數據庫

在PHP中,MY SQL的命令行編輯可能會令初學者感到很麻煩,不要緊,你下載一個PHPMYADMIN安裝一下,以後建立編輯數據庫可以靠它了。

下面說一下它的使用。

進入了phpmyadmin後,我們首先需要建立一個數據庫,

Language (*) 這裡選擇中文簡體,然後在左邊的 創建一個新的數據庫 這裡填寫數據庫名字,點擊創建即可。

然後在左邊下拉菜單中選擇那個已經創建的數據庫。在下面的

在數據庫 shop 中創建一個新表 :

名字 :

字段數 :

中填寫表名字和大致你認為的字段數(不夠或者多了都不要緊,以後可以再添加或者缺省),按執行。

然後就可以開始建立表了。

第一欄是字段的名字;第二欄選擇字段類型:

我們常用的是以下幾個:

1)VARCHAR,文本類型

2)INT,整數類型

3)FLOAT,浮點數類型

4)DATE,日期型

5)大家或許會問,自動添加的ID在哪裡?這個只要選擇INT類型,在後面的額外中選擇 auto_increment 就可以了。

建立了表以後,可以在左邊看到你建立的表,點擊以後,你可以:

1)按右邊的結構:查看修改表結構

2)按右邊的瀏覽:查看錶中的數據

3)按右邊的SQL:運行SQL語句

4)按右邊的插入:插入一行記錄

5)按右邊的清空:刪除表中所有記錄

6)按右邊的刪除:刪除表

還有一個很重要的功能就是導入和導出,當我們本機做好了程序和數據庫的時候,需要在服務器上也有一個本地鏡像,如果是ASP的ACCESS簡單了,直接上傳MDB文件即可,如果是SQL SERVER也可以連接遠端服務器進行導入。那麼MY SQL中你可以導出所有的SQL語句,到了遠端服務器的PHPMYADMIN上,創建數據庫後按SQL,粘帖你剛才複製下來的所有本級生成的SQL語句即可。

學會連接數據庫

PHP簡直就是一個函數庫,豐富的函數使PHP的某些地方相當簡單。建議大家down一本PHP的函數手冊,總用的到。

我這裡就簡單說一下連接MYSQL數據庫。

1、mysql_connect

打開 MySQL 服務器連接。

語法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整數

本函數建立與 MySQL 服務器的連接。其中所有的參數都可省略。當使用本函數卻不加任何參數時,參數 hostname 的默認值為 localhost、參數 username 的默認值為 PHP 執行行程的擁有者、參數 password 則為空字符串 (即沒有密碼)。而參數 hostname 後面可以加冒號與端口號,代表使用哪個端口與 MySQL 連接。當然在使用數據庫時,早點使用 mysql_close() 將連接關掉可以節省資源。

2、 mysql_select_db

選擇一個數據庫。

語法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整數

本函數選擇 MySQL 服務器中的數據庫以供之後的資料查詢作業 (query) 處理。成功返回 true,失敗則返回 false。

最簡單的例子就是:

$conn=mysql_connect (“127.0.0.1”, “”, “”);

mysql_select_db(“shop”);

連接機MY SQL數據庫,打開SHOP數據庫。在實際應用中應當加強點錯誤判斷。

學會讀取數據

先看兩個函數:

1、mysql_query

送出一個 query 字符串。 語法: int mysql_query(string query, int [link_identifier]); 返回值: 整數

本函數送出 query 字符串供 MySQL 做相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 ID。當 query 查詢字符串是 UPDATE、INSERT 及 DELETE 時,返回的可能是 true 或者 false;查詢的字符串是 SELECT 則返回新的 ID 值,當返回 false 時,並不是執行成功但無返回值,而是查詢的字符串有錯誤。

2、mysql_fetch_object 返回類資料。 語法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 類

本函數用來將查詢結果 result 拆到類變量中。若 result 沒有資料,則返回 false 值。

看一個簡單的例子:

?

$exec=”select * from user”;

$result=mysql_query($exec);

while($rs=mysql_fetch_object($result))

{

echo “username:”.$rs-username.”br”;

}

?

當然,表user中有一個username的字段,這就類似asp中的

%

exec=”select * from user”

set rs=server.createobject(“adodb.recordset”)

rs.open exec,conn,1,1

do while not rs.eof

response.write “username:”rs(“username”)”br”

rs.movenext

loop

%

當然先要連接數據庫,一般我們 require_once(‘conn.php’);而conn.php裏面就是上一次說的連接數據庫的代碼。

小小的兩條命令可以完成讀取數據的工作了

學會添加刪除修改數據

mysql_query($exec);

單這個語句就可以執行所有的操作了,不同的就是$exec這個sql語句

添加:$exec=”insert into tablename (item1,item2) values (‘”.$_POST[‘item1’].”‘,”.$_POST[‘item1’].”)”;

刪除:$exec=”delete from tablename where…”;

修改:$exec=”update tablename set item1='”.$_POST[‘item1’].”‘ where …”;

說到這裡就要說一下表單和php變量傳遞,如果表單中的一個 input name=”item1″ type=”text” id=”item1″

表單以POST提交的,那麼處理表單文件就可以用$_POST[‘item1’]得到變量值,同樣以GET提交的就是$_GET[‘item1’]

是不是很簡單?但是通常$exec會有問題,因為可能您的SQL語句會很長,您會遺漏.連接符,或者’來包圍字符型字段。

我們可以注釋mysql_query($exec);語句用echo $exec;代替來輸出$exec以檢查正確性。如果您還不能察覺$exec有什麼錯誤的話,可以複製這個sql語句到phpmyadmin中執行,看看它的出錯信息。還有需要注意的是,我們不要使用一些敏感的字符串作為字段名字,否則很可能會出現問題,比如說date什麼的。變量的命名,字段的命名遵循一點規律有的時候對自己是一種好處,初學者並不可忽視其重要性。

學會SESSION的使用

SESSION的作用很多,最多用的就是站點內頁面間變量傳遞。

在頁面開始我們要session_start();開啟SESSION;

然後就可以使用SESSION變量了,比如說要賦值就是:$_SESSION[‘item’]=”item1″;要得到值就是$item1=$_SESSION[‘item’];,很簡單吧。這裡我們可能會使用到一些函數,比如說判斷是不是某SESSION變量為空,可以這麼寫:empty($_SESSION[‘inum’])返回true or false。

下面綜合一下前面所說的我們來看一個登陸程序,判斷用戶名密碼是否正確。

登陸表單是這樣:login.php

table width=”100%” height=”100%” border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″

tr

form action=”checklogin.php” method=”post”td align=”center” valign=”middle”table width=”400″ border=”0″ cellpadding=”5″ cellspacing=”1″ class=”tablebg”

tr class=”tdbg”

td colspan=”2″p align=”center”Administrators Login/p/td

/tr

tr class=”tdbg”

tdp align=”center”Username/p/td

tdp align=”center”

input name=”username” type=”text” id=”username”

/p/td

/tr

tr class=”tdbg”

tdp align=”center”Password/p/td

tdp align=”center”

input name=”password” type=”password” id=”password”

/p/td

/tr

tr class=”tdbg”

td colspan=”2″p align=”center”

input type=”submit” name=”Submit” value=”Submit”

input type=”reset” name=”Submit2″ value=”Clear”

/p/td

/tr

/table/td/form

/tr

/table

處理文件是這樣

?php

require_once(‘conn.php’);

session_start();

$username=$_POST[‘username’];

$password=$_POST[‘password’];

$exec=”select * from admin where username='”.$username.”‘”;

if($result=mysql_query($exec))

{

if($rs=mysql_fetch_object($result))

{

if($rs-password==$password)

{

$_SESSION[‘adminname’]=$username;

header(“location:index.php”);

}

else

{

echo “scriptalert(‘Password Check Error!’);location.href=’login.php’;/script”;

}

}

else

{

echo “scriptalert(‘Username Check Error!’);location.href=’login.php’;/script”;

}

}

else

{

echo “scriptalert(‘Database Connection Error!’);location.href=’login.php’;/script”;

}

?

conn.php是這樣:

?php

$conn=mysql_connect (“127.0.0.1”, “”, “”);

mysql_select_db(“shop”);

?

由於 $_SESSION[‘adminname’]=$username;我們可以這樣寫驗證是否登陸語句的文件:checkadmin.php

?php

session_start();

if($_SESSION[‘adminname’]==”)

{

echo “scriptalert(‘Please Login First’);location.href=’login.php’;/script”;

}

?

做一個分頁顯示

關鍵就是用到了SQL語句中的limit來限定顯示的記錄從幾到幾。我們需要一個記錄當前頁的變量$page,還需要總共的記錄數$num

對於$page如果沒有我們就讓它=0,如果有0就讓它也=0,如果超過了總的頁數就讓他=總的頁數。

$execc=”select count(*) from tablename “;

$resultc=mysql_query($execc);

$rsc=mysql_fetch_array($resultc);

$num=$rsc[0];

這樣可以得到記錄總數

ceil($num/10))如果一頁10記錄的話,這個就是總的頁數

所以可以這麼寫

if(empty($_GET[‘page’]))

{

$page=0;

}

else

{

$page=$_GET[‘page’];

if($page0)$page=0;

if($page=ceil($num/10))$page=ceil($num/10)-1;//因為page是從0開始的,所以要-1

}

這樣$exec可以這麼寫 $exec=”select * from tablename limit “.($page*10).”,10″;

//一頁是10記錄的

最後我們需要做的就是幾個連接:

a href=”xxx.php?page=0″FirstPage/a

a href=”xxx.php?page=?=($page-1)?”PrevPage/a

a href=”xxx.php?page=?=($page+1)?”NextPage/a

a href=”xxx.php?page=?=ceil($num/10)-1?”LastPage/a

注意事項

1、注意不要漏了分號

2、注意不要漏了變量前的$

3、使用SESSION的時候注意不要遺漏session_start();

如果發生錯誤的時候,可以採用以下方法:

1、如果是SQL語句出錯,就注釋了然後輸出SQL語句,注意也要注釋調後續的執行SQL語句

2、如果是變量為空,大多是沒有傳遞到位,輸出變量檢查一下,檢查一下表單的id和name

3、如果是數據庫連接出錯,檢查是否正確打開MY SQL和是否遺漏了連接語句

4、注意縮進,排除括號不區配的錯誤

在做大網站的時候,我的思路是先構建數據庫,確定每一個字段的作用,和表之間的關係。然後設計後台界面,從添加數據開始做起,因為添加是否成功可以直接到數據庫裏面驗證,做好了添加再做顯示的頁面,最後才是兩者的結合。一般來說後台就包括添加刪除修改和顯示,後台沒有問題了,前台也沒有什麼大問題。前台還需要注意安全性和容錯還有就是輸出格式。

學會用PHP上傳文件和發郵件

上傳文件表單必須加上 enctype=”multipart/form-data”

和 input type=”file” name=”file”

下面看一下代碼:

$f=$HTTP_POST_FILES[‘file’];

$dest_dir=’uploads’;//設定上傳目錄

$dest=$dest_dir.’/’.date(“ymd”).”_”.$f[‘name’];//我這裡設置文件名為日期加上文件名避免重複

$r=move_uploaded_file($f[‘tmp_name’],$dest);

chmod($dest, 0755);//設定上傳的文件的屬性

上傳的文件名為date(“ymd”).”_”.$f[‘name’] ,可以在以後插入到數據庫的時候用到,PHP實際上是把你上傳的文件從臨時目錄移動到指定目錄。move_uploaded_file($f[‘tmp_name’],$dest);這是關鍵

至於發郵件就更加簡單,可以使用mail()函數

mail(“收件人地址”,”主題”,”正文”,”From:發件人\r\nReply-to:發件人的地址”);

不過mail()需要服務器的支持,在WINDOWS下還需要配置SMTP服務器,一般來說外面的LINUX空間都行。

好像上傳文件和發郵件比ASP簡單很多,只要調用函數就可以了。ASP還需要用到服務器的不同組件比如FSO、JMAIL什麼的。

;

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/279389.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:04
下一篇 2024-12-20 15:04

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • 數據結構與算法基礎青島大學PPT解析

    本文將從多個方面對數據結構與算法基礎青島大學PPT進行詳細的闡述,包括數據類型、集合類型、排序算法、字符串匹配和動態規劃等內容。通過對這些內容的解析,讀者可以更好地了解數據結構與算…

    編程 2025-04-29
  • Python零基礎PDF下載

    本文將為大家介紹如何使用Python下載PDF文件,適合初學者上手實踐。 一、安裝必要的庫 在Python中,我們需要使用urllib和requests庫來獲取PDF文件的鏈接,並…

    編程 2025-04-29
  • 樹莓派DIY無人機一:製作基礎

    本文將介紹如何使用樹莓派製作一個可飛行的小型無人機。本文將介紹樹莓派的選型、比例積木的使用、無線電通信以及如何控制飛行器的基本運動。 一、樹莓派的選型 在DIY無人機中,樹莓派是必…

    編程 2025-04-29
  • Polyphone音頻編輯器基礎入門教程

    Polyphone是一款免費的音頻編輯器,可用於編輯.sf2和.sfz格式的音色庫。本文將詳細介紹Polyphone的基礎操作及使用方法。 一、安裝和簡介 首先,我們需要下載並安裝…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28
  • 鍵值存儲(kvs):從基礎概念到實戰應用

    本文將從基礎概念入手,介紹鍵值存儲(kvs)的概念、原理以及實戰應用,並給出代碼實現。通過閱讀本文,您將了解鍵值存儲的優缺點,如何選擇最適合的鍵值存儲方案,以及如何使用鍵值存儲解決…

    編程 2025-04-28

發表回復

登錄後才能評論