最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP_MySQL教程-第一天

 更新時(shí)間:2007年03月18日 00:00:00   作者:  
第一頁 PHP/MySQL簡介 
您應(yīng)該聽說過開放源代碼軟件(OSS),除非最近六到八個(gè)月來您一直住在火星上。這場運(yùn)動有著巨大的沖擊力,已引起一些大公司的注意。象Oralce、Informix,還有多家公司都開始把他們的主力數(shù)據(jù)庫產(chǎn)品移植到OSS的產(chǎn)物之一 - Linux操作系統(tǒng)上。 
如果您有足夠的技術(shù)力量,擁有一個(gè)復(fù)雜龐大的關(guān)系數(shù)據(jù)庫系統(tǒng)(RDBMS)則是如虎添翼。但是也許您對數(shù)據(jù)庫還剛剛?cè)腴T,您剛剛讀了Jay的文章,決定自己也來搞一個(gè)數(shù)據(jù)驅(qū)動的網(wǎng)站??墒悄苍S會發(fā)現(xiàn)您缺乏必要的資源來運(yùn)行ASP服務(wù)器或昂貴的數(shù)據(jù)庫系統(tǒng)(您也不需要這些東西)。您需要一些免費(fèi)的、支持Unix的東西。 
那么我建議您使用PHP和MySQL。這兩樣?xùn)|西加在一起,對于開發(fā)數(shù)據(jù)驅(qū)動的網(wǎng)站這項(xiàng)工作而言,真是最佳組合。其實(shí)用不著我多費(fèi)唇舌解釋。一項(xiàng)由Netcraft組織的非官方調(diào)查顯示,應(yīng)用PHP的主機(jī)數(shù)目由1998年6月的7,500臺躍升至1999年3月的410,000臺。不錯(cuò)吧?這兩種軟件的組合還在Webcon98大會上贏得了年度數(shù)據(jù)庫產(chǎn)品大獎(jiǎng),還得了一座漂亮的獎(jiǎng)杯。 
MySQL是一個(gè)小巧靈瓏的數(shù)據(jù)庫服務(wù)器軟件,對于小型(當(dāng)然也不一定很?。?yīng)用系統(tǒng)是非常理想的。除了支持標(biāo)準(zhǔn)的ANSI SQL語句,它還支持多種平臺,而在Unix系統(tǒng)上該軟件支持多線程運(yùn)行方式,從而能獲得相當(dāng)好的性能。對于不使用Unix的用戶,它可以在Windows NT系統(tǒng)上以系統(tǒng)服務(wù)方式運(yùn)行,或者在Windows 95/98系統(tǒng)上以普通進(jìn)程方式運(yùn)行。 
PHP是一種服務(wù)器端解釋的腳本語言。如果你接觸過ASP的話,那么您對于在HTML頁面中嵌入代碼應(yīng)該是比較熟悉了。PHP代碼在服務(wù)器一端被解釋轉(zhuǎn)變成普通的HTML頁面內(nèi)容,送給瀏覽器一端。這種模式使得我們可以用它來完成相當(dāng)復(fù)雜的功能。 
除了免費(fèi)這一點(diǎn)(當(dāng)然,MySQL也有一些使用許可方面的限制),PHP-MySQL的組合還可以跨平臺運(yùn)行,這意味著您可以在Windows上開發(fā),然后在Unix平臺上運(yùn)行。另外,PHP也能作為標(biāo)準(zhǔn)的CGI進(jìn)程來運(yùn)行,此時(shí)它是一個(gè)獨(dú)立的腳本解釋器,或者是Apache的一個(gè)嵌入模塊。 
如果您有興趣使用其他數(shù)據(jù)庫服務(wù)器的話,PHP也支持Informix、Oracle、Sybase、Solid和PostgreSQL ,以及通用的ODBC。 
PHP支持Internet開發(fā)的一些前沿技術(shù)。這些技術(shù)包括身份認(rèn)證、XML、動態(tài)圖象生成、WDDX、共享內(nèi)存,以及動態(tài)PDF文檔等等,不一而足。如果您還不滿意的話,PHP是很容易擴(kuò)展的,所以只要您有編程能力,您盡可以自己大展身手一番。 
最后要說的是,兩種軟件都是大量程序員協(xié)同開發(fā)的,因此文檔及郵件列表等支持方式很多。程序錯(cuò)誤的修正很快,而如果您要求加入新功能的話,總會有人考慮您的要求,并且在可行性足夠高的前提下加以實(shí)現(xiàn)。 
說得夠多了!我們來看看這篇教程里都有些什么內(nèi)容吧。 
第一課講的是在Unix和Windows環(huán)境下安裝這兩個(gè)軟件。如果您不太關(guān)心這個(gè)問題(也許您是在ISP的服務(wù)器上開發(fā)),您可以直接跳到第一個(gè)示例程序,從那里開始您的奇妙之旅。 
在第二課里,我們要學(xué)習(xí)一些更加復(fù)雜的腳本功能,比如循環(huán)、處理用戶輸入,以及與數(shù)據(jù)庫交換數(shù)據(jù)等等。 
第三課要講的是確認(rèn)功能,以及如何使您的腳本程序清晰簡練。 
我們開始吧。

第四頁 第一個(gè)腳本 
如果我告訴您真正難過的一關(guān)已經(jīng)過了,您一定會很高興。軟件的安裝過程總是無法預(yù)料,因?yàn)橄到y(tǒng)跟系統(tǒng)之間可以說是千差萬別。不過您運(yùn)氣不錯(cuò),數(shù)據(jù)庫運(yùn)行起來,PHP也編譯安裝完畢,Web服務(wù)器也可以正確處理擴(kuò)展名為.php3的文件了。 
我們下面就開始正式上路,要寫第一個(gè)腳本程序了。創(chuàng)建一個(gè)文本文件,在其中加入下面的內(nèi)容:
復(fù)制代碼 代碼如下:

<html> 
<body> 
<?php 
$myvar = "Hello World"; 
echo $myvar; 
?> 
</body> 
</html>  

現(xiàn)在,訪問相應(yīng)的URL,例如,http://myserver/test.php3。您應(yīng)該可以看到頁面中包含“Hello World”的文字。如果您看到的是錯(cuò)誤信息,查一下PHP文檔,看看軟件設(shè)置是否正確無誤。 
就是這樣了!這是您的第一個(gè)PHP程序。如果您查看一下這個(gè)頁面的HTML源代碼,您會發(fā)現(xiàn)里面只有Hello World 這樣的文字。 
那是因?yàn)镻HP引擎過濾了文件內(nèi)容,對其中的代碼作了處理,轉(zhuǎn)換成了標(biāo)準(zhǔn)的HTML。 
在上面的程序中您最先注意到的可能是定界符,也就是以<?php開始的那幾行。這個(gè)標(biāo)記說明后面是PHP代碼,而?>表示代碼結(jié)束。PHP的強(qiáng)大之處在于,這些代碼可以以多種不同方式放在任意位置 - 我是說任意位置。后面我們會看到一些很有趣的例子,現(xiàn)在我們還是從最簡單的開始。如果您愿意,也可以設(shè)置PHP,讓它使用短標(biāo)記,<?和?>,但這與XML會發(fā)生沖突,所以要小心使用。如果您是從ASP轉(zhuǎn)向PHP,您甚至可以讓PHP使用<%和%>作為定界符。 
您還會注意到每行后面的分號。這些分號稱為分隔符,用于分隔不同的指令。您可以把所有的PHP代碼寫在一行里,用分隔符把命令分開。但是那樣看起來很亂,所以我們在每個(gè)分號后面都另起一行。記住,每行最后都要以分號結(jié)束。 
最后,您會注意到myvar這個(gè)字以$符號開頭。這個(gè)符號告訴PHP,這是一個(gè)變量。我們把“Hello World”賦給變量$myvar。一個(gè)變量可以是數(shù)字,也可以是數(shù)組。不管怎樣,所有的變量都是以$符開頭。 
PHP真正強(qiáng)大之處來源于它的函數(shù)。函數(shù),基本上是處理指令序列。如果您把所有的選件都編譯進(jìn)PHP,總共會有超過700個(gè)函數(shù)。這些函數(shù)可以讓您做很多事情。 
現(xiàn)在我們再加進(jìn)一些MySQL的內(nèi)容進(jìn)去。
第五頁 裝載數(shù)據(jù)庫 
現(xiàn)在,我們要加入MySQL的內(nèi)容了。要想知道PHP中包含哪些選項(xiàng),或服務(wù)器方面的一些情況,一種簡便的方法是使用函數(shù)phpinfo()。創(chuàng)建一個(gè)象下面這樣的程序:
復(fù)制代碼 代碼如下:

<html> 
<body> 
<?php 
phpinfo(); 
?> 
</body> 
</html>  

保存這個(gè)程序,在瀏覽器中訪問這個(gè)文件。您會看到網(wǎng)頁中包含了一些有趣的、有用的信息,象這樣。這些信息是有關(guān)服務(wù)器、Web服務(wù)器內(nèi)部環(huán)境變量、PHP中包含的選項(xiàng),等等。在第一段Extensions中,找到以MySQL開頭的一行。如果沒有找到,那說明MySQL支持選項(xiàng)并沒有編譯進(jìn)PHP。您可以再檢查一下安裝步驟,查閱一下PHP文檔,看您是否漏掉了什么。 
如果找到了MySQL那一行,那您可以繼續(xù)了。 
從MySQL數(shù)據(jù)庫中讀取數(shù)據(jù)之前,我們得先往數(shù)據(jù)庫里放一些數(shù)據(jù)。在現(xiàn)在這一階段,還沒有一個(gè)簡便的方法來做這件事情。大多數(shù)的PHP程序都帶有一個(gè)數(shù)據(jù)文件,該文件包含一些數(shù)據(jù)來創(chuàng)建并激活MySQL數(shù)據(jù)庫。這個(gè)過程不在本教程范圍之內(nèi),所以讓我來替您做這件事情吧。 
MySQL使用它自己的用戶權(quán)限表。在安裝時(shí),會創(chuàng)建一個(gè)默認(rèn)的用戶(root),該用戶是沒有口令的。數(shù)據(jù)庫管理員可以根據(jù)需要來增加用戶并賦予用戶各種不同的權(quán)限,但這項(xiàng)工作完全可以另寫一本書了,所以我們只使用root用戶。如果您自己管理服務(wù)器和數(shù)據(jù)庫,為root用戶分配一個(gè)口令是很重要的。 
總之,我們還是接著說數(shù)據(jù)庫吧。對Win32用戶來說,很對不起,不過您要在DOS下做些工作。您不得不使用DOS窗口,或者在“執(zhí)行”窗口中鍵入所有命令。別忘了,輸入命令時(shí)要帶上MySQL/bin的目錄名。Unix用戶可以在MySQL的bin目錄下輸入命令,但命令必須以./開頭,才能讓程序運(yùn)行起來。 
我們要做的第一件事情是實(shí)際創(chuàng)建出數(shù)據(jù)庫。在命令行下,鍵入下列命令: 
mysqladmin -u root create mydb 
這樣就創(chuàng)建了一個(gè)名為“mydb”的數(shù)據(jù)庫。-u選項(xiàng)告訴MySQL我們使用的是root用戶。 
下一步,我們要加入一些數(shù)據(jù),這里我們用的示例數(shù)據(jù)是大家都喜歡用的員工數(shù)據(jù)庫。我們將會用到我前面提到過的數(shù)據(jù)文件。如果您想在這方面多了解一些,可以查閱MySQL所帶的手冊或訪問 http://www.turbolift.com/mysql/網(wǎng)站。 
把下面的文字復(fù)制到一個(gè)文件中,把該文件存在MySQL的bin目錄下(我假定文件名是mydb.dump)。 
CREATE TABLE employees (  id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT,  first varchar(20),  last varchar(20),  address varchar(255),  position varchar(50),  PRIMARY KEY (id),  UNIQUE id (id));INSERT INTO employees VALUES (1,'Bob','Smith','128 Here St, Cityname','Marketing Manager');
INSERT INTO employees VALUES (2,'John','Roberts','45 There St , Townville','Telephonist');
INSERT INTO employees VALUES (3,'Brad','Johnson','1/34 Nowhere Blvd, Snowston','Doorman');
如果文字是折行的,請確保每一個(gè)INSERT語句都是另起一行的?,F(xiàn)在,我們要把數(shù)據(jù)加入到mydb數(shù)據(jù)庫中了。在命令行下,鍵入下面的命令: 
mysql -u root mydb < mydb.dump
此時(shí)您應(yīng)該不會遇到什么錯(cuò)誤。如果真的出錯(cuò)了,請仔細(xì)檢查一下是否因上面的文字折行而引起錯(cuò)誤。

net 第六頁 測試 
OK,現(xiàn)在我們已經(jīng)把數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中了?,F(xiàn)在我們來處理這些數(shù)據(jù)。把下面的文字存入一個(gè)文件中,把該文件存在Web服務(wù)器的文檔目錄下,后綴名為.php3。
復(fù)制代碼 代碼如下:

<html> 
<body> 
<?php 
$db = mysql_connect("localhost", "root"); 
mysql_select_db("mydb",$db); 
$result = mysql_query("SELECT * FROM employees",$db); 
printf("First Name: %s<br>n", mysql_result($result,0,"first")); 
printf("Last Name: %s<br>n", mysql_result($result,0,"last")); 
printf("Address: %s<br>n", mysql_result($result,0,"address")); 
printf("Position: %s<br>n", mysql_result($result,0,"position")); 
?> 
</body> 
</html>  

我來解釋一下上面的代碼。mysql_connect()函數(shù)負(fù)責(zé)以指定的用戶名(本例中用戶名是root)連接到指定機(jī)器(在本例中機(jī)器是本機(jī)localhost)上的MySQL數(shù)據(jù)庫。如果您想指定用戶口令,您也可以把它送給這個(gè)函數(shù)。連接的結(jié)果保存在變量$db中。 
隨后,mysql_select_db()函數(shù)告訴PHP,我們要讀取的數(shù)據(jù)庫是mydb。我們可以在程序中同時(shí)連接到多臺機(jī)器上的多個(gè)數(shù)據(jù)庫,但目前我們還是限于連接一個(gè)數(shù)據(jù)庫。 
接下來,mysql_query()函數(shù)完成最復(fù)雜的部分。利用剛才得到的連接結(jié)果標(biāo)識,該函數(shù)把一行SQL語句送給MySQL服務(wù)器去處理。返回的結(jié)果保存在變量$result中。 
最后,mysql_result()函數(shù)顯示SQL查詢命令所得到的各個(gè)字段的值。利用變量$result,我們就可以找到第一條記錄,記錄號是0,并將其中各字段的值顯示出來。 
如果您以前沒用過Perl或C語言,那么printf函數(shù)的語法格式會顯得很奇怪。在上面的每一行程序中,%s代表表達(dá)式第二部分中的那個(gè)變量(例如,mysql_result($result,0,"position"))應(yīng)該以字符串的形式顯示出來。想更深入了解printf,請參閱PHP文檔。 
這一課我們就講到這里了。我們已經(jīng)成功地編譯、安裝和設(shè)置了MySQL和PHP,并且運(yùn)行了一個(gè)簡單的程序來讀取數(shù)據(jù)庫中的信息。在 第二課里,我們會做一些更復(fù)雜的工作,來顯示多行記錄的數(shù)據(jù),甚至與數(shù)據(jù)庫互相交換數(shù)據(jù)。

相關(guān)文章

最新評論

安泽县| 红原县| 南京市| 武邑县| 仁寿县| 墨竹工卡县| 华宁县| 敦化市| 南通市| 淮阳县| 萍乡市| 长岛县| 绍兴县| 枣庄市| 即墨市| 江陵县| 瑞金市| 武乡县| 拉孜县| 曲松县| 青岛市| 特克斯县| 望江县| 武义县| 错那县| 北海市| 新绛县| 同江市| 阳信县| 静安区| 循化| 云浮市| 鄂伦春自治旗| 道真| 信宜市| 香港| 斗六市| 南雄市| 丹巴县| 宁蒗| 运城市|