印前問(wèn)答為您提供印刷前期的相關(guān)問(wèn)題咨詢(xún)與解答,印刷案例規格及印刷報價(jià),讓您實(shí)時(shí)了解在印刷前期的各類(lèi)相關(guān)問(wèn)題及印后相關(guān)問(wèn)題,并提供印刷時(shí)的注意事項,為您提供各類(lèi)印前印后的相關(guān)問(wèn)題解決方案
印刷問(wèn)答 2021-05-09 23:29 972
PHP/MYSQL經(jīng)典教程!
首頁(yè) -> 吉人巷精品區
閱讀上一個(gè)主題 :: 閱讀下一個(gè)主題
作者 留言
googniao
新手上路
加入于: 2002-12-22
文章: 33
發(fā)表于: 24 12 2002 06:21 下午 發(fā)表主題: PHP/MYSQL經(jīng)典教程!
--------------------------------------------------------------------------------
PHP/MySQL教程(一)
--------------------------------------------------------------------------------
本文介紹堪稱(chēng)Web數據庫黃金組合的PHP/MySQL如何構筑一個(gè)網(wǎng)絡(luò )數據庫應用的方法,PHP是一個(gè)類(lèi)似微軟ASP的服務(wù)器端的嵌入式超文本處理語(yǔ)言,是建立動(dòng)態(tài)網(wǎng)站的強大工具pdf怎么復制其中一頁(yè)。而MySQL是一個(gè)輕型SQL數據庫服務(wù)器,可運行在多種平臺上,包括Windows NT和Linux,它還有一個(gè)GPL版本,MySQL被認為是建立數據庫驅動(dòng)的動(dòng)態(tài)網(wǎng)站的最佳產(chǎn)品。PHP、MySQL和Apache是Linux平臺網(wǎng)站的最佳拍檔。該教程是一個(gè)3日課程,從安裝到應用都有詳細描述。
一、PHP/MySQL簡(jiǎn)介
您應該聽(tīng)說(shuō)過(guò)開(kāi)放源代碼軟件(OSS),除非最近六到八個(gè)月來(lái)您一直住在火星上pdf怎么復制其中一頁(yè)。這場(chǎng)運動(dòng)有著(zhù)巨大的沖擊力,已引起一些大公司的注意。象Oralce、Informix,還有多家公司都開(kāi)始把他們的主力數據庫產(chǎn)品移植到OSS的產(chǎn)物之一 - Linux操作系統上。
如果您有足夠的技術(shù)力量,擁有一個(gè)復雜龐大的關(guān)系數據庫系統(RDBMS)則是如虎添翼pdf怎么復制其中一頁(yè)。但是也許您對數據庫還剛剛入門(mén),您剛剛讀了Jay的文章,決定自己也來(lái)搞一個(gè)數據驅動(dòng)的網(wǎng)站。可是您也許會(huì )發(fā)現您缺乏必要的資源來(lái)運行ASP服務(wù)器或昂貴的數據庫系統(您也不需要這些東西)。您需要一些免費的、支持Unix的東西。
那么我建議您使用PHP和MySQLpdf怎么復制其中一頁(yè)。這兩樣東西加在一起,對于開(kāi)發(fā)數據驅動(dòng)的網(wǎng)站這項工作而言,真是最佳組合。其實(shí)用不著(zhù)我多費唇舌解釋。一項由Netcraft組織的非官方調查顯示,應用PHP的主機數目由1998年6月的7,500臺躍升至1999年3月的410,000臺。不錯吧?這兩種軟件的組合還在Webcon98大會(huì )上贏(yíng)得了年度數據庫產(chǎn)品大獎,還得了一座漂亮的獎杯。
MySQL是一個(gè)小巧靈瓏的數據庫服務(wù)器軟件,對于小型(當然也不一定很?。孟到y是非常理想的pdf怎么復制其中一頁(yè)。除了支持標準的ANSI SQL語(yǔ)句,它還支持多種平臺,而在Unix系統上該軟件支持多線(xiàn)程運行方式,從而能獲得相當好的性能。對于不使用Unix的用戶(hù),它可以在Windows NT系統上以系統服務(wù)方式運行,或者在Windows 95/98系統上以普通進(jìn)程方式運行。
PHP是一種服務(wù)器端解釋的腳本語(yǔ)言pdf怎么復制其中一頁(yè)。如果你接觸過(guò)ASP的話(huà),那么您對于在HTML頁(yè)面中嵌入代碼應該是比較熟悉了。PHP代碼在服務(wù)器一端被解釋轉變成普通的HTML頁(yè)面內容,送給瀏覽器一端。這種模式使得我們可以用它來(lái)完成相當復雜的功能。
除了免費這一點(diǎn)(當然,MySQL也有一些使用許可方面的限制),PHP-MySQL的組合還可以跨平臺運行,這意味著(zhù)您可以在Windows上開(kāi)發(fā),然后在Unix平臺上運行pdf怎么復制其中一頁(yè)。另外,PHP也能作為標準的CGI進(jìn)程來(lái)運行,此時(shí)它是一個(gè)獨立的腳本解釋器,或者是Apache的一個(gè)嵌入模塊。
如果您有興趣使用其他數據庫服務(wù)器的話(huà),PHP也支持Informix、Oracle、Sybase、Solid和PostgreSQL ,以及通用的ODBCpdf怎么復制其中一頁(yè)。
PHP支持Internet開(kāi)發(fā)的一些前沿技術(shù)pdf怎么復制其中一頁(yè)。這些技術(shù)包括身份認證、XML、動(dòng)態(tài)圖象生成、WDDX、共享內存,以及動(dòng)態(tài)PDF文檔等等,不一而足。如果您還不滿(mǎn)意的話(huà),PHP是很容易擴展的,所以只要您有編程能力,您盡可以自己大展身手一番。
最后要說(shuō)的是,兩種軟件都是大量程序員協(xié)同開(kāi)發(fā)的,因此文檔及郵件列表等支持方式很多pdf怎么復制其中一頁(yè)。程序錯誤的修正很快,而如果您要求加入新功能的話(huà),總會(huì )有人考慮您的要求,并且在可行性足夠高的前提下加以實(shí)現。
說(shuō)得夠多了!我們來(lái)看看這篇教程里都有些什么內容吧pdf怎么復制其中一頁(yè)。
第一課講的是在Unix和Windows環(huán)境下安裝這兩個(gè)軟件pdf怎么復制其中一頁(yè)。如果您不太關(guān)心這個(gè)問(wèn)題(也許您是在ISP的服務(wù)器上開(kāi)發(fā)),您可以直接跳到第一個(gè)示例程序,從那里開(kāi)始您的奇妙之旅。
在第二課里,我們要學(xué)習一些更加復雜的腳本功能,比如循環(huán)、處理用戶(hù)輸入,以及與數據庫交換數據等等pdf怎么復制其中一頁(yè)。
第三課要講的是確認功能,以及如何使您的腳本程序清晰簡(jiǎn)練pdf怎么復制其中一頁(yè)。
我們開(kāi)始吧
二、安裝MySQL
快點(diǎn)行動(dòng),拿到這些軟件包,仔細研究一下吧pdf怎么復制其中一頁(yè)。這可不是件容易的事兒。你從獲取軟件包、編譯軟件包到安裝軟件包的過(guò)程中都有不少的選擇項。我們先從MySQL開(kāi)始,因為有了它才能運行PHP。
MySQL中央網(wǎng)站是;
在這時(shí)候你也會(huì )有多種選擇pdf怎么復制其中一頁(yè)。如果你是發(fā)燒友的話(huà),可以下載源代碼;否則,網(wǎng)上也有各種平臺上運行的預先編譯過(guò)的二進(jìn)制文件可以直接下載。
另外,MySQL還為Windows用戶(hù)準備了一個(gè)共享軟件版本,它的版本號稍低一些pdf怎么復制其中一頁(yè)。如果你想要最新的版本,得花錢(qián)買(mǎi)一個(gè)軟件許可。MySQL還提供了ODBC驅動(dòng)程序,使前端應用程序可以訪(fǎng)問(wèn)MySQL數據庫。有關(guān)其他一些詳細信息在它的網(wǎng)站上都有得介紹,您可以去看看。
預先編譯過(guò)的Unix版本和Windows版本都很簡(jiǎn)單,只須解包即可使用,不需要做太多說(shuō)明了pdf怎么復制其中一頁(yè)。因此,我們來(lái)介紹一下源代碼的編譯。Windows用戶(hù)請記住,您需要運行mysqld程序,該程序是在mysql/bin目錄下。
下載壓縮過(guò)的軟件包文件,放在一個(gè)目錄下pdf怎么復制其中一頁(yè)。使用gzip和tar來(lái)解壓縮和解包。比較快的做法是使用下面這樣的命令:
gunzip < mysql-xxxx.tar.gz | tar xvf -
其中,xxxx是你自己任取的一個(gè)版本標記pdf怎么復制其中一頁(yè)。上面的命令將創(chuàng )建一個(gè)名為mysql-xxxx目錄,所有的源程序文件都在這個(gè)目錄下。通過(guò)執行cd mysql-xxxx命令轉入該目錄,仔細閱讀其中的多個(gè)README文件INSTALL文件。在遇到某些問(wèn)題時(shí),這些文件可能會(huì )幫上大忙呢。
MySQL帶有一些便利的配置腳本程序pdf怎么復制其中一頁(yè)。只須簡(jiǎn)單地鍵入./configure,您就可以讓這些程序為您完成很多工作。如果您需要明確指定要做的事情,可以使用./configure -help命令,它會(huì )給您列出你可以使用的選項。例如,如果您正在一臺內存較少的機器上進(jìn)行編譯,那么可以使用--with-low-memory選項。我喜歡把MySQL安裝在一個(gè)總目錄下,而不是安裝在機器上多個(gè)目錄下,所以我會(huì )指定安裝目錄,并指定-prefix選項。
您還可以指定許多其他選項,象編譯過(guò)程中要略掉哪些部分、保留哪些部分等pdf怎么復制其中一頁(yè)。我們不妨假定要全部安裝在服務(wù)器的/usr/local/mysql目錄下。這意味著(zhù)我們將鍵入./configure -prefix=/usr/local/mysql命令。
配置腳本程序運行時(shí)會(huì )檢查您的系統,然后生成一些文件來(lái)保證編譯的順利進(jìn)行pdf怎么復制其中一頁(yè)。如果該腳本程序失敗,它也會(huì )顯示一些有用的錯誤信息告訴您失敗的原因。大家經(jīng)常會(huì )遇到腳本程序在尋找多線(xiàn)程庫文件時(shí)失敗。此時(shí)您應當檢查一下系統中是否已經(jīng)安裝了MIT-pthreads,如果沒(méi)有,那么請您安裝該軟件。Linux用戶(hù)則必須安裝LinuxThreads。這些庫文件對于MySQL的多線(xiàn)程運行模式(也就是運行它自己的多個(gè)版本〕是非常關(guān)鍵的。
如果一切都順利進(jìn)行的話(huà),只須簡(jiǎn)單鍵入make命令,然后就可以去泡杯咖啡了pdf怎么復制其中一頁(yè)。MySQL是相當復雜的程序,編譯起來(lái)得用一段時(shí)間。如果發(fā)現錯誤,可以檢查文檔,看看只否您漏掉了某些與您的操作系統有關(guān)的準備工作。
接下來(lái),鍵入make install命令,所有必需的文件都會(huì )安裝到相應的目錄pdf怎么復制其中一頁(yè)。您差不多就可以開(kāi)始使用了!如果您是MySQL新手,以前從未安裝過(guò)MySQL,那您得創(chuàng )建默認的許可權限才能安裝,因此請鍵入...scripts/mysql_install_db來(lái)進(jìn)行相應的設置。
就這樣pdf怎么復制其中一頁(yè)。我們的準備工作完成了。再下面所要做的就是在機器啟動(dòng)時(shí)自動(dòng)啟動(dòng)數據庫,并在關(guān)機時(shí)自動(dòng)關(guān)閉數據庫。是的,這項工作也有一個(gè)專(zhuān)門(mén)的腳本程序。mysql.server start命令可以啟動(dòng)數據庫,而mysql.server stop可以關(guān)閉數據庫。實(shí)在是再簡(jiǎn)單不過(guò)了。如果您想手動(dòng)啟動(dòng)數據庫(這樣就不用重啟機器了),你以進(jìn)到安裝MySQL的最上層目錄(/usr/local/mysql)然后鍵入bin/safe_mysqld &命令。
我們已經(jīng)完成了一半了pdf怎么復制其中一頁(yè)。接下來(lái)是PHP部分。
三、安裝PHP
好,看到這里時(shí),希望您已經(jīng)把MySQL安裝好并運行起來(lái)了pdf怎么復制其中一頁(yè)。那實(shí)在是太有意思了!下面是PHP...這個(gè)過(guò)程要容易一些,不過(guò)那些大量的選項還是使人眼花繚亂。當然,您大可不必驚慌。您隨時(shí)可以重頭再來(lái),重新編譯PHP,根據需要來(lái)加入或去掉某個(gè)選項。
PHP的老家在。
這里您的選擇不是很多pdf怎么復制其中一頁(yè)。有一些預選編譯好的二進(jìn)制文件,但那都是實(shí)驗性的。如果您不是在Windows平臺上,那就下載源代碼,自己編譯一下吧。
但是我們還是先談?wù)刉indowspdf怎么復制其中一頁(yè)。在使用PHP時(shí),一般的作法是在Windows系統上開(kāi)發(fā),然后在Unix服務(wù)器上運行。您最終可能也會(huì )選擇這種方式,這就需要您對兩種平臺下的安裝都很熟悉才行。
下載Windows二進(jìn)制文件后,您可以用您喜歡的任何一種ZIP解壓縮程序,把軟件包中的文件解壓到C盤(pán)的php3目錄下pdf怎么復制其中一頁(yè)。軟件包中的README文件對安裝過(guò)程中的細節作了部分說(shuō)明,但是我們在這里再對這個(gè)文件中的關(guān)鍵內容做個(gè)讀者文摘:如果您不想把PHP安裝在C:\php3目錄,而是別的目錄,那么您得編輯解壓縮出來(lái)的文件中那個(gè).inf文件。
在php3目錄中,您會(huì )發(fā)現很多.dll文件pdf怎么復制其中一頁(yè)。把所有文件名不是以php_開(kāi)頭的那些.dll文件都移到\windows\system目錄下。然后,把php.ini-dist文件改一下名,改成php3.ini,并把它移到\windows目錄下。如果您打開(kāi)這個(gè)文件,會(huì )發(fā)現里面有很多有趣的東西可以改。現在,把含有:
extension=php3_mysql.dll
內容的那一行的注釋去掉pdf怎么復制其中一頁(yè)。
如果您使用的是Win32平臺上的Apache服務(wù)器,那么請設置Apache,使其能夠識別并解釋PHP文件pdf怎么復制其中一頁(yè)。您需要在軟件的版本)中加入下一行:
Action application/x-“
AddType application/x-
或者,如果您使用的是IIS,那么請用鼠標右鍵單擊php_iis_reg.inf文件,并選擇“安裝”pdf怎么復制其中一頁(yè)。您得重新啟動(dòng)系統,才能使剛才所做的改動(dòng)生效。
OK,說(shuō)完了Windows,再來(lái)說(shuō)說(shuō)Unixpdf怎么復制其中一頁(yè)。當然,我們要從源代碼開(kāi)始編譯。與MySQL相似,把源文件下載、解包。PHP也同樣包含一個(gè)配置腳本程序,可是您不能完全使用默認設置。運行./configure -help | more命令,可以逐頁(yè)地觀(guān)看有哪些新的、有趣的選項。您必須選擇是把PHP編譯成外部CGI程序還是Apache內嵌模塊。如果您正在使用Apache Web服務(wù)器,并且您可以對它進(jìn)行重新編譯的話(huà),請選擇內嵌模塊方式,這種方式運行更快,使用也更簡(jiǎn)便。否則,您可以選CGI方式。另外,您還得指定將對MySQL的支持部分編譯進(jìn)去。
現在我們假定要以?xún)惹赌K方式編譯,并帶有MySQL支持部分pdf怎么復制其中一頁(yè)。如果隨后您需要增加其他選項或庫文件的話(huà),可以在以后再加進(jìn)去。鍵入下面的命令:
./configure -with-apache=/path/to/apache/dir -with-mysql=/usr/local/mysql
如果您打算以外部CGI程序方式來(lái)編譯的話(huà),請去掉-with-apache選項pdf怎么復制其中一頁(yè)。配置程序運行起來(lái)后,會(huì )創(chuàng )建相應的系統文件。接下來(lái)簡(jiǎn)單地執行make命令就行了。
又可以喝一杯咖啡了pdf怎么復制其中一頁(yè)。如果您在此時(shí)感到坐立不安的話(huà),不必擔心。每個(gè)人在初次安裝PHP的時(shí)候都有一點(diǎn)近不及待的感覺(jué)。再多喝點(diǎn)咖啡就是了。
如果您選擇CGI程序方式來(lái)編譯,那么現在可以就可以使用了pdf怎么復制其中一頁(yè)。只須把產(chǎn)生的可執行文件復制到CGI程序目錄下就行了。如果您使用Apache內嵌模塊方式來(lái)編譯,要再執行一下make install命令,把有關(guān)文件復制到Apache目錄下。在該目錄下,您可以按照Apache的文檔說(shuō)明,向其中加入PHP模塊,并重新編譯Apache。
現在您得告訴Web服務(wù)器如何通過(guò)PHP程序來(lái)處理頁(yè)面內容pdf怎么復制其中一頁(yè)。如果您使用的不是Apache,那您需要查閱Web服務(wù)器軟件的文檔,看看如何讓它處理后綴是.php3的文件。Apache1.3.x版本的用戶(hù)僅須在前面還得加入下面內容:
Action application/x-
就是這樣pdf怎么復制其中一頁(yè)。您的運氣還不那么差,現在MySQL也運行起來(lái)了,PHP也工作正常了。
既然我們已經(jīng)進(jìn)行了這么多,下面我們可以實(shí)際操練了pdf怎么復制其中一頁(yè)。
PHP/MySQL教程(二)
--------------------------------------------------------------------------------
四、第一個(gè)腳本
如果我告訴您真正難過(guò)的一關(guān)已經(jīng)過(guò)了,您一定會(huì )很高興pdf怎么復制其中一頁(yè)。軟件的安裝過(guò)程總是無(wú)法預料,因為系統跟系統之間可以說(shuō)是千差萬(wàn)別。不過(guò)您運氣不錯,數據庫運行起來(lái),PHP也編譯安裝完畢,Web服務(wù)器也可以正確處理擴展名為.php3的文件了。
我們下面就開(kāi)始正式上路,要寫(xiě)第一個(gè)腳本程序了pdf怎么復制其中一頁(yè)。創(chuàng )建一個(gè)文本文件,在其中加入下面的內容:
<>
<>
<?php
$myvar = “Hello World“;
echo $myvar;
?>
</body>
</html>
現在,訪(fǎng)問(wèn)相應的URL,例如,文檔,看看軟件設置是否正確無(wú)誤。
就是這樣了!這是您的第一個(gè)PHP程序pdf怎么復制其中一頁(yè)。如果您查看一下這個(gè)頁(yè)面的HTML源代碼,您會(huì )發(fā)現里面只有Hello World 這樣的文字。
那是因為PHP引擎過(guò)濾了文件內容,對其中的代碼作了處理,轉換成了標準的HTMLpdf怎么復制其中一頁(yè)。
在上面的程序中您最先注意到的可能是定界符,也就是以<?php開(kāi)始的那幾行pdf怎么復制其中一頁(yè)。這個(gè)標記說(shuō)明后面是PHP代碼,而?>表示代碼結束。PHP的強大之處在于,這些代碼可以以多種不同方式放在任意位置-我是說(shuō)任意位置。后面我們會(huì )看到一些很有趣的例子,現在我們還是從最簡(jiǎn)單的開(kāi)始。如果您愿意,也可以設置PHP,讓它使用短標記,<?和?>,但這與XML會(huì )發(fā)生沖突,所以要小心使用。如果您是從ASP轉向PHP,您甚至可以讓PHP使用<%和%>作為定界符。
您還會(huì )注意到每行后面的分號pdf怎么復制其中一頁(yè)。這些分號稱(chēng)為分隔符,用于分隔不同的指令。您可以把所有的PHP代碼寫(xiě)在一行里,用分隔符把命令分開(kāi)。但是那樣看起來(lái)很亂,所以我們在每個(gè)分號后面都另起一行。記住,每行最后都要以分號結束。
最后,您會(huì )注意到myvar這個(gè)字以$符號開(kāi)頭pdf怎么復制其中一頁(yè)。這個(gè)符號告訴PHP,這是一個(gè)變量。我們把“Hello World”賦給變量$myvar。一個(gè)變量可以是數字,也可以是數組。不管怎樣,所有的變量都是以$符開(kāi)頭。
PHP真正強大之處來(lái)源于它的函數pdf怎么復制其中一頁(yè)。函數,基本上是處理指令序列。如果您把所有的選件都編譯進(jìn)PHP,總共會(huì )有超過(guò)700個(gè)函數。這些函數可以讓您做很多事情。
現在我們再加進(jìn)一些MySQL的內容進(jìn)去pdf怎么復制其中一頁(yè)。
五、裝載數據庫
現在,我們要加入MySQL的內容了pdf怎么復制其中一頁(yè)。要想知道PHP中包含哪些選項,或服務(wù)器方面的一些情況,一種簡(jiǎn)便的方法是使用函數phpinfo()。創(chuàng )建一個(gè)象下面這樣的程序:
<>
<>
<?php
phpinfo();
?>
</body>
</html>
保存這個(gè)程序,在瀏覽器中訪(fǎng)問(wèn)這個(gè)文件pdf怎么復制其中一頁(yè)。您會(huì )看到網(wǎng)頁(yè)中包含了一些有趣的、有用的信息,象這樣。這些信息是有關(guān)服務(wù)器、Web服務(wù)器內部環(huán)境變量、PHP中包含的選項,等等。在第一段Extensions中,找到以MySQL開(kāi)頭的一行。如果沒(méi)有找到,那說(shuō)明MySQL支持選項并沒(méi)有編譯進(jìn)PHP。您可以再檢查一下安裝步驟,查閱一下PHP文檔,看您是否漏掉了什么。
如果找到了MySQL那一行,那您可以繼續了pdf怎么復制其中一頁(yè)。
從MySQL數據庫中讀取數據之前,我們得先往數據庫里放一些數據pdf怎么復制其中一頁(yè)。在現在這一階段,還沒(méi)有一個(gè)簡(jiǎn)便的方法來(lái)做這件事情。大多數的PHP程序都帶有一個(gè)數據文件,該文件包含一些數據來(lái)創(chuàng )建并激活MySQL數據庫。這個(gè)過(guò)程不在本教程范圍之內,所以讓我來(lái)替您做這件事情吧。
MySQL使用它自己的用戶(hù)權限表pdf怎么復制其中一頁(yè)。在安裝時(shí),會(huì )創(chuàng )建一個(gè)默認的用戶(hù)(root),該用戶(hù)是沒(méi)有口令的。數據庫管理員可以根據需要來(lái)增加用戶(hù)并賦予用戶(hù)各種不同的權限,但這項工作完全可以另寫(xiě)一本書(shū)了,所以我們只使用root用戶(hù)。如果您自己管理服務(wù)器和數據庫,為root用戶(hù)分配一個(gè)口令是很重要的。
總之,我們還是接著(zhù)說(shuō)數據庫吧pdf怎么復制其中一頁(yè)。對Win32用戶(hù)來(lái)說(shuō),很對不起,不過(guò)您要在DOS下做些工作。您不得不使用DOS窗口,或者在“執行”窗口中鍵入所有命令。別忘了,輸入命令時(shí)要帶上MySQL/bin的目錄名。Unix用戶(hù)可以在MySQL的bin目錄下輸入命令,但命令必須以./開(kāi)頭,才能讓程序運行起來(lái)。
我們要做的第一件事情是實(shí)際創(chuàng )建出數據庫pdf怎么復制其中一頁(yè)。在命令行下,鍵入下列命令:
mysqladmin -u root create mydb
這樣就創(chuàng )建了一個(gè)名為“mydb”的數據庫pdf怎么復制其中一頁(yè)。-u選項告訴MySQL我們使用的是root用戶(hù)。
下一步,我們要加入一些數據,這里我們用的示例數據是大家都喜歡用的員工數據庫pdf怎么復制其中一頁(yè)。我們將會(huì )用到我前面提到過(guò)的數據文件。如果您想在這方面多了解一些,可以查閱MySQL所帶的手冊或訪(fǎng)問(wèn) /網(wǎng)站。
把下面的文字復制到一個(gè)文件中,把該文件存在MySQL的bin目錄下(我假定文件名是mydb.dump)pdf怎么復制其中一頁(yè)。
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語(yǔ)句都是另起一行的pdf怎么復制其中一頁(yè)。現在,我們要把數據加入到mydb數據庫中了。在命令行下,鍵入下面的命令:
mysql -u root mydb < mydb.dump
此時(shí)您應該不會(huì )遇到什么錯誤pdf怎么復制其中一頁(yè)。如果真的出錯了,請仔細檢查一下是否因上面的文字折行而引起錯誤。
六、測試
OK,現在我們已經(jīng)把數據導入到數據庫中了pdf怎么復制其中一頁(yè)。現在我們來(lái)處理這些數據。把下面的文字存入一個(gè)文件中,把該文件存在Web服務(wù)器的文檔目錄下,后綴名為.php3。
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
$result = mysql_query(“SELECT * FROM employees“,$db);
printf(“First Name: %s<>\n“, mysql_result($result,0,“first“));
printf(“Last Name: %s<>\n“, mysql_result($result,0,“l(fā)ast“));
printf(“Address: %s<>\n“, mysql_result($result,0,“address“));
printf(“Position: %s<>\n“, mysql_result($result,0,“position“));
?>
</body>
</html>
我來(lái)解釋一下上面的代碼pdf怎么復制其中一頁(yè)。mysql_connect()函數負責以指定的用戶(hù)名(本例中用戶(hù)名是root)連接到指定機器(在本例中機器是本機localhost)上的MySQL數據庫。如果您想指定用戶(hù)口令,您也可以把它送給這個(gè)函數。連接的結果保存在變量$db中。
隨后,mysql_select_db()函數告訴PHP,我們要讀取的數據庫是mydbpdf怎么復制其中一頁(yè)。我們可以在程序中同時(shí)連接到多臺機器上的多個(gè)數據庫,但目前我們還是限于連接一個(gè)數據庫。
接下來(lái),mysql_query()函數完成最復雜的部分pdf怎么復制其中一頁(yè)。利用剛才得到的連接結果標識,該函數把一行SQL語(yǔ)句送給MySQL服務(wù)器去處理。返回的結果保存在變量$result中。
最后,mysql_result()函數顯示SQL查詢(xún)命令所得到的各個(gè)字段的值pdf怎么復制其中一頁(yè)。利用變量$result,我們就可以找到第一條記錄,記錄號是0,并將其中各字段的值顯示出來(lái)。
如果您以前沒(méi)用過(guò)Perl或C語(yǔ)言,那么printf函數的語(yǔ)法格式會(huì )顯得很奇怪pdf怎么復制其中一頁(yè)。在上面的每一行程序中,%s代表表達式第二部分中的那個(gè)變量(例如,mysql_result($result,0,“position“))應該以字符串的形式顯示出來(lái)。
這一課我們就講到這里了pdf怎么復制其中一頁(yè)。我們已經(jīng)成功地編譯、安裝和設置了MySQL和PHP,并且運行了一個(gè)簡(jiǎn)單的程序來(lái)讀取數據庫中的信息。在第二課里,我們會(huì )做一些更復雜的工作,來(lái)顯示多行記錄的數據,甚至與數據庫互相交換數據。
PHP/MySQL教程(三)
--------------------------------------------------------------------------------
一、 while循環(huán)
在這一課里,我們將會(huì )繼續深入下去,使用PHP和MySQL來(lái)寫(xiě)出一些簡(jiǎn)單而有用的頁(yè)面pdf怎么復制其中一頁(yè)。我們從昨天創(chuàng )建的數據庫開(kāi)始,顯示庫中的數據,但是會(huì )再稍微加以潤色。
首先,我們用下面的代碼來(lái)查詢(xún)數據庫內容pdf怎么復制其中一頁(yè)。
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
$result = mysql_query(“SELECT * FROM employees“,$db);
echo “< border=1>\n“;
echo “<><>姓名</td><>職位</td></tr>\n“;
while ($myrow = mysql_fetch_row($result)) {
printf(“<><>%s %s</td><>%s</td></tr>\n“, $myro
w[1], $myrow[2], $myrow[3]);
}
echo “</table>\n“;
?>
</body>
</html>
您可能已經(jīng)注意到,我們在這個(gè)程序里加進(jìn)了一些新東西pdf怎么復制其中一頁(yè)。最明顯的是while()循環(huán)。該循環(huán)是說(shuō),只要數據庫里還有記錄可讀(使用mysql_fetch_row()函數),那就把該記錄賦給變量$myrow,然后執行大括號({})內的指令。仔細看一下這里,這部分是比較重要的。
我們應該注意一下mysql_fetch_row()函數pdf怎么復制其中一頁(yè)。這里有一點(diǎn)小問(wèn)題,它返回的是一個(gè)數組,必須以數組下標來(lái)訪(fǎng)問(wèn)其中的某個(gè)字段。第一個(gè)字段下標為0,第二個(gè)是1,依此類(lèi)推。在執行某些復雜查詢(xún)時(shí),這么做簡(jiǎn)直實(shí)在是太煩瑣了。
現在我們更仔細地研究一下循環(huán)過(guò)程pdf怎么復制其中一頁(yè)。程序前幾行我們在第一課的例子中已經(jīng)看到過(guò)了。然后,在while()循環(huán)中,我們從查詢(xún)結果中讀取一條記錄并把該記錄賦給數組$myrow。接著(zhù),我們用printf函數把數據中的內容顯示在屏幕上。隨后,循環(huán)反復執行,讀取下一條記錄賦給$myrow。這樣繼續下去,直到所有記錄都已被讀取完為止。
使用while()循環(huán)的一個(gè)好處是,如果數據庫查詢(xún)沒(méi)有返回任何記錄,那您也不會(huì )收到錯誤信息pdf怎么復制其中一頁(yè)。在剛執行循環(huán)語(yǔ)句時(shí),循環(huán)條件就不滿(mǎn)足,不會(huì )有任何數據賦給$myrow,程序就直接往下運行了。
但是如果查詢(xún)未返回任何數據,我們怎么讓用戶(hù)知道這一點(diǎn)呢?我們也許該提供點(diǎn)兒相關(guān)的消息給用戶(hù)吧pdf怎么復制其中一頁(yè)。這是可以做到的,下面我們就看看怎么做。
二、 if-else
請看下面的程序pdf怎么復制其中一頁(yè)。
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
$result = mysql_query(“SELECT * FROM employees“,$db);
if ($myrow = mysql_fetch_array($result)) {
echo “< border=1>\n“;
echo “<><>姓名</td><>住址</td></tr>\n“;
do {
printf(“<><>%s %s</td><>%s</tr>\n“, $myrow[“first“],
$myrow[“l(fā)ast“], $myrow[“address“]);
} while ($myrow = mysql_fetch_array($result));
echo “</table>\n“;
} else {
echo “對不起pdf怎么復制其中一頁(yè),沒(méi)有找到記錄!“;
}
?>
</body>
</html>
這段程序中包含有不少新內容,不過(guò)這些內容都相當簡(jiǎn)單pdf怎么復制其中一頁(yè)。首先是mysql_fetch_array()函數。該函數與mysql_fetch_row()十分相近,只有一點(diǎn)不同:使用這個(gè)函數時(shí),我們可以通過(guò)字段名而不是數組下標來(lái)訪(fǎng)問(wèn)它返回的字段,比如$myrow[“first“]。這樣我們就可以省不少力氣了。另外,程序中還加進(jìn)了do/while循環(huán)和if-else條件判定語(yǔ)句。
if-else條件判定語(yǔ)句的含意是,如果我們成功地把一條記錄賦給了$myrow變量,那就繼續;否則,就跳到else部分,執行那里的指令pdf怎么復制其中一頁(yè)。
do/while循環(huán)是我們在上頁(yè)中用戶(hù)的while()循環(huán)的一個(gè)變體pdf怎么復制其中一頁(yè)。我們要用到do/while的原因是:在最初的if語(yǔ)句中,我們已經(jīng)把查詢(xún)返回的第一條記錄賦給變量$myrow了。如果這時(shí)我們執行一般的while循環(huán)(比如,while ($myrow = mysql_fetch_row($result)),那我們就會(huì )把第二條記錄賦給$myrow,而第一條記錄就被沖掉了。但是do/while循環(huán)可以讓我們執行一次循環(huán)體內容之后再來(lái)判定循環(huán)條件。因此,我們就不會(huì )不小心漏掉第一條記錄了。
最后,如果查詢(xún)結果沒(méi)有任何記錄的話(huà),程序就會(huì )執行包含在else{}部分的那些語(yǔ)句pdf怎么復制其中一頁(yè)。如果您想看到這部分程序的執行情況,可以把SQL語(yǔ)句改為SELECT * FROM employees WHERE id=6,或改成其他形式,使得查詢(xún)結果中沒(méi)有任何記錄。
下面我們來(lái)擴充一下循環(huán)if-else 代碼,使得頁(yè)面內容更加豐富pdf怎么復制其中一頁(yè)。相信您會(huì )喜歡的。
三、 第一個(gè)程序腳本
我們剛剛學(xué)到了循環(huán)語(yǔ)句,下面我們將在一個(gè)更加實(shí)際一點(diǎn)的例子中看看如何運用它pdf怎么復制其中一頁(yè)。但是在這之前,您應該知道如何處理Web表格、查詢(xún)參數串,以及表單的GET方法和POST方法。
現在,我們要處理查詢(xún)參數串,正如您所知道的,有三種方法可以把參數內容寫(xiě)入到查詢(xún)參數串中pdf怎么復制其中一頁(yè)。第一種是在表格中使用GET方法;第二種是在瀏覽器的地址欄中輸入網(wǎng)址時(shí)直接加上查詢(xún)參數;第三種是把查詢(xún)參數串嵌入到網(wǎng)頁(yè)的超鏈接中,使得超鏈接的內容象下面這樣:< href=“;。我們現在要用到最后這一種方法。
一開(kāi)始,我們再來(lái)查詢(xún)我們的數據庫,列出員工姓名pdf怎么復制其中一頁(yè)。看看下面的程序,其中大部分內容我們都已經(jīng)很熟悉了。
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
$result = mysql_query(“SELECT * FROM employees“,$db);
if ($myrow = mysql_fetch_array($result)) {
do {
printf(“< href=\“%s?id=%s\“>%s %s</a><>\n“,
$PATH_INFO, $myrow[“id“], $myrow[“first“], $myrow[“l(fā)ast“]);
} while ($myrow = mysql_fetch_array($result));
} else {
echo “對不起pdf怎么復制其中一頁(yè),沒(méi)有找到記錄!“;
}
?>
</body>
</html>
這里沒(méi)什么特別的,只是printf函數有些不同pdf怎么復制其中一頁(yè)。那我們就來(lái)仔細研究一下。
首先要注意的是,所有的引號前面都有一個(gè)反斜杠pdf怎么復制其中一頁(yè)。這個(gè)反斜杠告訴PHP直接顯示后面的字符,而不能把后面的字符當作程序代碼來(lái)處理。另外要注意變量$PATH_INFO的用法。該變量在所用程序中都可以訪(fǎng)問(wèn),是用來(lái)保存程序自身的名稱(chēng)與目錄位置的。我們之所以用到它是因為要在頁(yè)面中再調用這個(gè)程序本身。使用$PATH_INFO,我們可以做到,即使程序被挪到其他目錄,甚至是其他機器上時(shí),我們也能保證正確地調用到這個(gè)程序。
正如我剛才提到的,程序所生成的網(wǎng)頁(yè),其中包含的超鏈接會(huì )再次調用程序本身pdf怎么復制其中一頁(yè)。不過(guò),再次調用時(shí),會(huì )加入一些查詢(xún)參數。
PHP見(jiàn)到查詢(xún)參數串中包含有“名字=值”這樣的成對格式時(shí),會(huì )作一些特別的處理pdf怎么復制其中一頁(yè)。它會(huì )自動(dòng)生成一個(gè)變量,變量名稱(chēng)與取值都與查詢(xún)參數串中所給定的名稱(chēng)和取值相同。這一功能使得我們可以在程序中判斷出是第一次執行本程序還是第二次。我們所要做的只是問(wèn)問(wèn)PHP$id這個(gè)變量是否存在。
當我知道這個(gè)問(wèn)題的答案后,我可以在第二次調用程序時(shí)顯示一些不同的結果出來(lái)pdf怎么復制其中一頁(yè)。請看:
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
// display individual record
// 顯示單條記錄內容
if ($id) {
$result = mysql_query(“SELECT * FROM employees WHERE id=$id“,$db);
$myrow = mysql_fetch_array($result);
printf(“名: %s\n<>“, $myrow[“first“]);
printf(“姓: %s\n<>“, $myrow[“l(fā)ast“]);
printf(“住址: %s\n<>“, $myrow[“address“]);
printf(“職位: %s\n<>“, $myrow[“position“]);
} else {
// show employee list
// 顯示員工列表
$result = mysql_query(“SELECT * FROM employees“,$db);
if ($myrow = mysql_fetch_array($result)) {
// display list if there are records to display
// 如果有記錄pdf怎么復制其中一頁(yè),則顯示列表
do {
printf(“< href=\“%s?id=%s\“>%s %s</a><>\n“, $PATH_INFO,
$myrow[“id“], $myrow[“first“], $myrow[“l(fā)ast“]);
} while ($myrow = mysql_fetch_array($result));
} else {
// no records to display
// 沒(méi)有記錄可顯示
echo “對不起pdf怎么復制其中一頁(yè),沒(méi)有找到記錄!“;
}
}
?>
</body>
</html>
程序開(kāi)始變得復雜了,所以我在這里面加了注釋?zhuān)?來(lái)解釋一下到底發(fā)生了什么pdf怎么復制其中一頁(yè)。您可以用//加入單行注釋?zhuān)?或者用/*和*/來(lái)括住大段的注釋。
到這里,我們已經(jīng)學(xué)會(huì )了第一個(gè)真正有用的PHP/MySQL腳本程序!現在,我們要看看怎樣把Web表格加進(jìn)來(lái),并且向數據庫發(fā)送數據pdf怎么復制其中一頁(yè)。
PHP/MySQL教程(四)
--------------------------------------------------------------------------------
四、 向服務(wù)器發(fā)送數據
現在我們從數據庫讀取數據已經(jīng)沒(méi)有太多困難了pdf怎么復制其中一頁(yè)。但是怎么反過(guò)來(lái)向數據庫發(fā)送數據呢?其實(shí)這不是PHP的問(wèn)題。
首選,我們創(chuàng )建一個(gè)帶有簡(jiǎn)單表格的網(wǎng)頁(yè)pdf怎么復制其中一頁(yè)。
<>
<>
< method=“post“ action=“<?php echo $PATH_INFO?>“>
名:< type=“Text“ name=“first“><>
姓:< type=“Text“ name=“l(fā)ast“><>
住址:< type=“Text“ name=“address“><>
職位:< type=“Text“ name=“position“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
</body>
</html>
同樣要注意$PATH_INFO的用法pdf怎么復制其中一頁(yè)。就象我在第一課里講到的,您可以在HTML代碼中的任意位置使用PHP。您也會(huì )注意到,表格中的每一個(gè)元素都對應著(zhù)數據庫中的一個(gè)字段。這種對應關(guān)系并不是必須的,這么做只是更直觀(guān)一些,便于您以后理解這些代碼。
還要注意的是,我在Submit按鈕中加入了name屬性pdf怎么復制其中一頁(yè)。這樣我在程序中可以試探$submit變量是否存在。于是,當網(wǎng)頁(yè)被再次調用時(shí),我就會(huì )知道調用頁(yè)面時(shí)是否已經(jīng)填寫(xiě)了表格。
我應該指出,您不一定要把上面的網(wǎng)頁(yè)內容寫(xiě)到PHP程序中,再返過(guò)來(lái)調用程序本身pdf怎么復制其中一頁(yè)。您完全可以把顯示表格的網(wǎng)頁(yè)和處理表格的程序分開(kāi)放在兩個(gè)網(wǎng)頁(yè)、三個(gè)網(wǎng)頁(yè)甚至更多網(wǎng)頁(yè)中,悉聽(tīng)尊便。放在一個(gè)文件中只是可以使內容更加緊湊而已。
那好,我們現在加入一些代碼,來(lái)檢查用戶(hù)在表格中輸入的內容pdf怎么復制其中一頁(yè)。我會(huì )把用$。
<>
<>
<?php
if ($submit) {
// 處理表格輸入
while (list($name, $value) = each($)) {
echo “$name = $value<>\n“;
}
} else{
// 顯示表格
?>
< method=“post“ action=“<?php echo $PATH_INFO?>“>
名:< type=“Text“ name=“first“><>
姓:< type=“Text“ name=“l(fā)ast“><>
住址:< type=“Text“ name=“address“><>
職位:< type=“Text“ name=“position“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
} // end ifpdf怎么復制其中一頁(yè),if結束
?>
</body>
</html>
程序現在運行正常,那我們現在就可以取到表格輸入的內容,并把它們發(fā)送給數據庫pdf怎么復制其中一頁(yè)。
<>
<>
<?php
if ($submit) {
// 處理表格輸入
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
$sql = “INSERT INTO employees (first,last,address,position)
VALUES (’$first’,’$last’,’$address’,’$position’)“;
$result = mysql_query($sql);
echo “Thank you! Information entered.\n“;
} else{
// 顯示表格內容
?>
< method=“post“ action=“<?php echo $PATH_INFO?>“>
名:< type=“Text“ name=“first“><>
姓:< type=“Text“ name=“l(fā)ast“><>
住址:< type=“Text“ name=“address“><>
職位:< type=“Text“ name=“position“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
} // end ifpdf怎么復制其中一頁(yè),if結束
?>
</body>
</html>
您現在已經(jīng)向數據庫中插入數據了pdf怎么復制其中一頁(yè)。不過(guò)還有很多完善的工作要做。如果用戶(hù)沒(méi)有填寫(xiě)某一欄怎么辦?在需要填入數字的地方填了文字怎么辦?或者填錯了怎么辦?別擔心。我們一步一步來(lái)。
PHP/MySQL教程(五)
--------------------------------------------------------------------------------
五、修改數據
在個(gè)教程中,我都把要執行的SQL語(yǔ)句放到一個(gè)變量($sql)中,然后才用mysql_query()來(lái)執行數據庫查詢(xún)pdf怎么復制其中一頁(yè)。在調試時(shí)這是很有用的。如果程序出了什么問(wèn)題,您隨時(shí)可以把SQL語(yǔ)句的內容顯示出來(lái),檢查其中的語(yǔ)法錯誤。
我們已經(jīng)學(xué)習了如何把數據插入到數據庫中pdf怎么復制其中一頁(yè)。現在我們來(lái)學(xué)習如何修改數據庫中已有的記錄。數據的編輯包括兩部分:數據顯示和通過(guò)表格輸入把數據返回給數據庫,這兩部分我們前面都已經(jīng)講到了。然而,數據編輯還是有一點(diǎn)點(diǎn)不同,我們必須先在表格中顯示出相關(guān)的數據。
首先,我們回過(guò)頭再看看第一課的程序代碼,在網(wǎng)頁(yè)中顯示員工姓名pdf怎么復制其中一頁(yè)。但是這次,我們要把數據顯示在表格中。程序看起來(lái)象下面這樣:
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
if ($id) {
// 查詢(xún)數據庫
$sql = “SELECT * FROM employees WHERE id=$id“;
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
< method=“post“ action=“<?php echo $PATH_INFO?>“>
< type=hidden name=“id“ value=“<?php echo $myrow[“id“] ?>“>
名:< type=“Text“ name=“first“ value=“<?php echo
$myrow[“first“] ?>“><>
姓:< type=“Text“ name=“l(fā)ast“ value=“<?php echo
$myrow[“l(fā)ast“] ?>“><>
住址:< type=“Text“ name=“address“ value=“<?php echo
$myrow[“address“] ?>“><>
職位:< type=“Text“ name=“position“ value=“<?php echo
$myrow[“position“] ?>“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
} else {
// 顯示員工列表
$result = mysql_query(“SELECT * FROM employees“,$db);
while ($myrow = mysql_fetch_array($result)) {
printf(“< href=\“%s?id=%s\“>%s %s</a><>\n“, $PATH_INFO,
$myrow[“id“], $myrow[“first“], $myrow[“l(fā)ast“]);
}
}
?>
</body>
</html>
我們剛才是把字段內容寫(xiě)入到相應表格元素中的value屬性里,這是相應簡(jiǎn)單的pdf怎么復制其中一頁(yè)。我們再往前進(jìn)一步,使程序可以把用戶(hù)修改過(guò)的內容寫(xiě)回數據庫去。同樣,我們通過(guò)Submit按鈕來(lái)判斷是否處理表格輸入內容。還要注意,我們用的SQL語(yǔ)句稍稍有些不同。
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
if ($id) {
if ($submit) {
$sql = “UPDATE employees SET first=’$first’,last=’$last’,
address=’$address’,position=’$position’ WHERE id=$id“;
$result = mysql_query($sql);
echo “謝謝pdf怎么復制其中一頁(yè)!數據更改完成\n“;
} else {
// 查詢(xún)數據庫
$sql = “SELECT * FROM employees WHERE id=$id“;
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
< method=“post“ action=“<?php echo $PATH_INFO?>“>
< type=hidden name=“id“ value=“<?php echo $myrow[“id“] ?>“>
名:< type=“Text“ name=“first“ value=“<?php
echo $myrow[“first“] ?>“><>
姓:< type=“Text“ name=“l(fā)ast“ value=“<?php echo
$myrow[“l(fā)ast“] ?>“><>
住址:< type=“Text“ name=“address“ value=“<?php echo
$myrow[“address“] ?>“><>
職位:< type=“Text“ name=“position“ value=“<?php echo
$myrow[“position“] ?>“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
}
} else {
// 顯示員工列表
$result = mysql_query(“SELECT * FROM employees“,$db);
while ($myrow = mysql_fetch_array($result)) {
printf(“< href=\“%s?id=%s\“>%s %s</a><>\n“, $PATH_INFO,
$myrow[“id“], $myrow[“first“], $myrow[“l(fā)ast“]);
}
}
?>
</body>
</html>
就是這樣pdf怎么復制其中一頁(yè)。在這個(gè)程序中已經(jīng)包含了我們學(xué)過(guò)所大多數特性。您也已經(jīng)看到,我們在一個(gè)if()條件判別語(yǔ)句中又加了一個(gè)if()語(yǔ)句,來(lái)檢查多重條件。
下面,我們要把所有東西全都加在一起,寫(xiě)出一個(gè)很好的程序來(lái)pdf怎么復制其中一頁(yè)。
PHP/MySQL教程(六)
--------------------------------------------------------------------------------
六、完整的程序
在本課結束前,我們要把所有東西加入到一個(gè)程序中,使它具有增加、編輯修改、刪除記錄的功能pdf怎么復制其中一頁(yè)。這是前面所有內容的一個(gè)延伸,也可以作為極好的復習方法。看看下面的程序。
<>
<>
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
if ($submit) {
// 如果沒(méi)有IDpdf怎么復制其中一頁(yè),則我們是在增加記錄,否則我們是在修改記錄
if ($id) {
$sql = “UPDATE employees SET first=’$first’,last=’$last’,
address=’$address’,position=’$position’ WHERE id=$id“;
} else {
$sql = “INSERT INTO employees (first,last,address,position)
VALUES (’$first’,’$last’,’$address’,’$position’)“;
}
// 向數據庫發(fā)出SQL命令
$result = mysql_query($sql);
echo “記錄修改成功pdf怎么復制其中一頁(yè)!<>“;
} elseif ($delete) {
// 刪除一條記錄
$sql = “DELETE FROM employees WHERE id=$id“;
$result = mysql_query($sql);
echo “記錄刪除成功pdf怎么復制其中一頁(yè)!<>“;
} else {
// 如果我們還沒(méi)有按submit按鈕pdf怎么復制其中一頁(yè),那么執行下面這部分程序
if (!$id) {
// 如果不是修改狀態(tài)pdf怎么復制其中一頁(yè),則顯示員工列表
$result = mysql_query(“SELECT * FROM employees“,$db);
while ($myrow = mysql_fetch_array($result)) {
printf(“< href=\“%s?id=%s\“>%s %s</a> \n“,
$PATH_INFO, $myrow[“id“], $myrow[“first“], $myrow[“l(fā)ast“]);
printf(“< href=\“%s?id=%s&delete=yes\“>(DELETE)</a><
br>“, $PATH_INFO, $myrow[“id“]);
}
}
?>
<>
< href=“<?php echo $PATH_INFO?>“> A RECORD</a>
<>
< method=“post“ action=“<?php echo $PATH_INFO?>“>
<?php
if ($id) {
// 我們是在編輯修改狀態(tài)pdf怎么復制其中一頁(yè),因些選擇一條記錄
$sql = “SELECT * FROM employees WHERE id=$id“;
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$id = $myrow[“id“];
$first = $myrow[“first“];
$last = $myrow[“l(fā)ast“];
$address = $myrow[“address“];
$position = $myrow[“position“];
// 顯示idpdf怎么復制其中一頁(yè),供用戶(hù)編輯修改
?>
< type=hidden name=“id“ value=“<?php echo $id ?>“>
<?php
}
?>
名:< type=“Text“ name=“first“ value=“<?php echo $first ?>“><>
姓:< type=“Text“ name=“l(fā)ast“ value=“<?php echo $last ?>“><>
住址:< type=“Text“ name=“address“ value=“<?php echo $address ?>“><>
職位:< type=“Text“ name=“position“ value=“<?php echo $position ?>“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
}
?>
</body>
<`/html>
這段程序看起來(lái)很復雜,但實(shí)際上并不難pdf怎么復制其中一頁(yè)。程序主要有三個(gè)部分。第一個(gè)if()語(yǔ)句檢查我們是否已經(jīng)按下了那個(gè)“輸入信息”的數據提交按鈕。如果是,程序再檢查$id是否存在。如果不存在,那我們就是在增加記錄狀態(tài),否則,我們是在修改記錄狀態(tài)。
接下來(lái)我們檢查變量$delete是否存在pdf怎么復制其中一頁(yè)。如果存在,我們是要刪除記錄。注意,第一個(gè)if()語(yǔ)句檢查的是用POST方法發(fā)送來(lái)的變量,而這一次我們檢查的是GET方法中傳遞過(guò)來(lái)的變量。
最后,程序默認的動(dòng)作是顯示員工列表和表格pdf怎么復制其中一頁(yè)。同樣,我們要檢查變量$id是否存在。如果存在,我們就根據它的值檢索出相應的記錄顯示出來(lái)。否則,我們會(huì )顯示一個(gè)空的表格。
現在,我們已經(jīng)把所學(xué)的東西全部都放在一個(gè)程序里頭了pdf怎么復制其中一頁(yè)。我們用到了while()循環(huán),用到了if()語(yǔ)句,并且執行了全部的SQL基本操作 - SELECT、INSERT、UPDATE以及DELETE。另外,我們也知道如何在不同的網(wǎng)頁(yè)之間通過(guò)URL和表格輸入來(lái)互相傳遞信息。
在第下一課里,我們要學(xué)習如何為網(wǎng)頁(yè)增加智能化處理能力pdf怎么復制其中一頁(yè)。
PHP/MySQL教程(七)
--------------------------------------------------------------------------------
一、基本函數
歡迎來(lái)到本教程的第七課pdf怎么復制其中一頁(yè)。如果您已經(jīng)學(xué)過(guò)前面的內容,那么您已經(jīng)掌握了MySQL和PHP的安裝及編程的基本知識。下面我們要介紹PHP的一些其他函數,這些函數可能會(huì )對您有用,使您的開(kāi)發(fā)過(guò)程更加簡(jiǎn)單。首先我們來(lái)看看頭文件。
大家應該知道頭文件的一些基本概念吧?頭文件是一個(gè)外部文件,它的內容被包含到主程序中pdf怎么復制其中一頁(yè)。方法也十分簡(jiǎn)單:在程序文件中引用頭文件名,這個(gè)頭文件就會(huì )包含進(jìn)來(lái)了。在PHP中使用頭文件,會(huì )涉及兩個(gè)函數:include()和require()。這兩個(gè)函數差別很小,卻很重要,所以我們要認真研究一下。require()函數工作方式與XSSI相類(lèi)似;不管在程序的哪個(gè)部分使用了這個(gè)函數,只有程序一開(kāi)始運行,頭文件的內容就被作為程序本身的一部分來(lái)處理。因此,如果您在一個(gè)條件判定語(yǔ)句中使用了require()函數,那么即使這個(gè)條件即使不為真,頭文件也會(huì )被包含進(jìn)來(lái)。
而include()函數只是在執行到這一條語(yǔ)句時(shí)才會(huì )把頭文件內容包含進(jìn)來(lái)pdf怎么復制其中一頁(yè)。如果程序沒(méi)運行到這里,那PHP是不會(huì )管它的。這就意味著(zhù),您在條件判定部分使用include時(shí),它會(huì )完全按照您希望的那樣工作。
還有,如果您用了require()函數,而您指定的頭文件并不存在,那么程序將會(huì )停止運行并產(chǎn)生錯誤pdf怎么復制其中一頁(yè)。如果您用了include(),程序會(huì )產(chǎn)生一個(gè)警告信息,但是會(huì )繼續運行。您可以親自試一下,運行下面的程序,然后把include()換成require(),再比較兩個(gè)程序運行的結果。
<>
<>
<?php
include(“emptyfile.inc“);
echo “Hello World“;
?>
</body>
</html>
我喜歡把頭文件的后綴名起成.inc,這樣就可以把頭文件和一般的程序區分開(kāi)來(lái)pdf怎么復制其中一頁(yè)。如果您也這么做,那么請您修改Web服務(wù)器軟件的配置文件,使它能夠把.inc文件也當作PHP文件來(lái)處理。否則,黑客們也許會(huì )猜到您的頭文件名,然后用瀏覽器把頭文件內容以純文本格式顯示出來(lái)。此時(shí)如果您的頭文件中有些機密信息(如數據庫口令等)那就糟糕了。
那么,您用頭文件來(lái)做什么呢?很簡(jiǎn)單!把對所有程序都通用的那些內容放到頭文件里pdf怎么復制其中一頁(yè)。象HTML文件頭啦,腳注啦,數據庫連接代碼啦,還有您自己定義的一些函數什么的。把下面的文字拷貝到一個(gè)文件中,保存為header.inc。
<?php
$db = mysql_connect(“l(fā)ocalhost“, “root“);
mysql_select_db(“mydb“,$db);
?>
<>
<>
<>
<?php echo $title ?>
</title>
</head>
<>
<><><?php echo $title ?></h2></center>
然后再創(chuàng )建另外一個(gè)文件,名字是footer.txt,該文件可以包含一些程序結束時(shí)用到的一些文字和標記pdf怎么復制其中一頁(yè)。
現在,我們再來(lái)創(chuàng )建一個(gè)文件,這個(gè)文件里面是真正的PHP程序代碼pdf怎么復制其中一頁(yè)。試一下下面的代碼,當然,您要確認MySQL數據庫服務(wù)器正在運行。
<?php
$title = “Hello World“;
include(“header.inc“);
$result = mysql_query(“SELECT * FROM employees“,$db);
echo “< border=1>\n“;
echo “<><>名字</td><>職位</tr>\n“;
while ($myrow = mysql_fetch_row($result)) {
printf(“<><>%s %s</td><>%s</tr>\n“, $myrow[1], $myrow[2], $myrow[3]);
}
echo “</table>\n“;
include(“footer.inc“);
?>
看到發(fā)生了什么事了嗎?頭文件里的內容被合并到程序中,PHP把所有的代碼都執行了一遍pdf怎么復制其中一頁(yè)。注意在包含header.inc頭文件之前$title是如何定義的。在header.inc中的代碼可以訪(fǎng)問(wèn)到它的值。這樣,網(wǎng)頁(yè)的標題就被改掉了。現在,您可以在任何程序中使用header.inc頭文件了,您所要做的不過(guò)是在每個(gè)主程序中為$title變量取一個(gè)合適的值。
頭文件、HTML、條件判定語(yǔ)句,還有循環(huán)語(yǔ)句,這些東西加在一些,您就可以用最簡(jiǎn)練的代碼,寫(xiě)出功能各異的各種復雜程序來(lái)pdf怎么復制其中一頁(yè)。在與函數同時(shí)使用時(shí),頭文件更能發(fā)揮它的效力,我們后面就會(huì )看到。
接下去,我們會(huì )介紹精彩的部分:數據校驗pdf怎么復制其中一頁(yè)。
二、 數據校驗
想象一下這樣的情形:我們把數據庫都設計妥當了,現在請用戶(hù)輸入信息來(lái)寫(xiě)到數據庫中去pdf怎么復制其中一頁(yè)。假設您有一個(gè)字段是要求數字類(lèi)型的信息,比如價(jià)格;而某個(gè)可愛(ài)的用戶(hù),卻在這一欄里輸入了文字信息,使得您的應用程序的執行過(guò)程出現了故障。對您在SQL語(yǔ)句中提供的文字類(lèi)型的數據,MySQL數據庫拒不接受,并向您提出了“嚴正抗議”。
怎么辦呢?您要用數據校驗來(lái)防止以上狀況發(fā)生pdf怎么復制其中一頁(yè)。
簡(jiǎn)單地講,數據校驗是指我們對數據(通常是用戶(hù)經(jīng)由HTML表格傳過(guò)來(lái)的)進(jìn)行檢查,看看它是否遵從一定的規則pdf怎么復制其中一頁(yè)。規則可以是多種多樣的,比如某一數據元素不能為空,或者要求某一數據項的內容必須滿(mǎn)足一定的要求(例如前面的例子中要求必須是數字而不是文字,或者要求電子郵件地址中一定要包含一個(gè)“@”字等等)。
數據校驗既可以在服務(wù)器一端作,也可以在客戶(hù)端來(lái)作pdf怎么復制其中一頁(yè)。PHP是用來(lái)作服務(wù)器一端的數據校驗的,而JavaScript或其他客戶(hù)端腳本編程語(yǔ)言則能夠提供客戶(hù)端的數據校驗功能。本文說(shuō)的是PHP,所以我們在這里著(zhù)重介紹服務(wù)器端的校驗。如果您想找一些現成的、在客戶(hù)端運行的數據較驗程序,那您可以去網(wǎng)猴程序庫看看。
暫時(shí)把數據庫放在一邊不談,我們先來(lái)說(shuō)說(shuō)PHP的數據校驗方法pdf怎么復制其中一頁(yè)。如果您愿意(或者說(shuō),您想記錄我們要校驗的那些數據的話(huà)),您可以在前面所建的員工數據庫的里加入其他字段,很簡(jiǎn)單,用MySQL的ALTER 語(yǔ)句就行了。
有好幾個(gè)PHP功能都可以用來(lái)作數據校驗的工作,有些很簡(jiǎn)單,有些則復雜一些pdf怎么復制其中一頁(yè)。其中strlen()是比較簡(jiǎn)單的一個(gè)函數,它能夠告訴我們一個(gè)變量的長(cháng)度。
更復雜一點(diǎn)兒的是ereg(),這個(gè)函數可以處理完整的常規表達式來(lái)進(jìn)行復雜的校驗pdf怎么復制其中一頁(yè)。我不想就常規表達式講得太深,因為許多書(shū)都是專(zhuān)門(mén)寫(xiě)這個(gè)問(wèn)題的。不過(guò)我會(huì )在下一頁(yè)中給出一些簡(jiǎn)單的例子。
我們先從一個(gè)簡(jiǎn)單的例子開(kāi)始吧pdf怎么復制其中一頁(yè)。下面這個(gè)程序要檢查一個(gè)變量是否存在。
<>
<>
<?php
if ($submit) {
if (!$first || !$last) {
$error = “對不起pdf怎么復制其中一頁(yè),您必須填寫(xiě)所有的欄目!“;
} else {
// 處理表格輸入內容
echo “謝謝pdf怎么復制其中一頁(yè)!“;
}
}
if (!$submit || $error) {
echo $error;
?>
<>
< method=“post“ action=“<?php echo $PHP_SELF ?>“>
第一欄: < type=“text“ name=“名“ value=“<?php echo $first ?>“><>
第二欄: < type=“text“ name=“姓“ value=“<?php echo $last ?>“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
} // if結束
?>
</body>
</html>
這段程序中關(guān)鍵的地方是嵌套的條件判定語(yǔ)句pdf怎么復制其中一頁(yè)。第一層檢查用戶(hù)是否按了發(fā)送數據的按鈕。如果是,程序接著(zhù)檢查$first和$last兩個(gè)變量是否都存在。那個(gè) || 符號表示“或”,而 ! 符號表示“非”。那一句程序用一般語(yǔ)言描述就是“如果$first不存在或者$last不存在,那么就把 $error變量置成下面的值。”
接下來(lái),我們再進(jìn)一步,檢查一段文字的長(cháng)度pdf怎么復制其中一頁(yè)。這對用戶(hù)口令的檢查是很有必要的,因為您不想讓某些懶惰的用戶(hù)輸入只有一、兩個(gè)字的口令,可能會(huì )要求他們輸入六位長(cháng)的口令。
我們已經(jīng)講到strlen()這個(gè)函數了pdf怎么復制其中一頁(yè)。它只是簡(jiǎn)單地返回一個(gè)數字,該數字等于被測變量中所包含的字符個(gè)數。這里,我修改一下上面的程序,檢查一下$first與$last的長(cháng)度。
<>
<>
<?php
if ($submit) {
if (strlen($first) < 6 || strlen($last) < 6) {
$error = “對不起pdf怎么復制其中一頁(yè),您必須填寫(xiě)所有欄目!“;
} else {
// 處理表格輸入內容
echo “謝謝pdf怎么復制其中一頁(yè)!“;
}
}
if (!$submit || $error) {
echo $error;
?>
<>
< method=“post“ action=“<?php echo $PHP_SELF ?>“>
第一欄: < type=“text“ name=“名“ value=“<?php echo $first ?>“><>
第二欄: < type=“text“ name=“姓“ value=“<?php echo $last ?>“><>
< type=“Submit“ name=“submit“ value=“輸入信息“>
</form>
<?php
} // if結束
?>
</body>
</html>
您可以執行一下這段程序,輸入六個(gè)字或少于六個(gè)字的內容pdf怎么復制其中一頁(yè)。這種校驗很簡(jiǎn)單,但很有效。
__________________
PHP/MySQL教程(八)
--------------------------------------------------------------------------------
三、 處理常規表達式
我們稍微講講用ereg()和eregi()兩個(gè)函數處理常規表達式pdf怎么復制其中一頁(yè)。前面我已經(jīng)提過(guò),這些函數有的很簡(jiǎn)單,有的很復雜,看您的實(shí)際需要而定。
使用常規表達式,您可以對一個(gè)字符串進(jìn)行檢查,搜索其中的一些結構模式,判定這些模式是否滿(mǎn)足您的規定pdf怎么復制其中一頁(yè)。最普遍的用法包括檢查電子郵件地址是否有效(當然,即使這種辦法判定有效,也不能保證郵件地址真的存在)。
我們在這里不細究常規表達式的復雜細節了,僅僅給出幾個(gè)實(shí)例pdf怎么復制其中一頁(yè)。您可以使用上一頁(yè)中用過(guò)的表格 - 把相應的程序代碼復制過(guò)來(lái),添加到下面的代碼段中,就可以看到它是怎樣工作的。
首先,我們要確保表格中各欄只能輸入字母pdf怎么復制其中一頁(yè)。下面的常規表達式在用戶(hù)輸入一個(gè)或多個(gè)小寫(xiě)字母時(shí)判定為真,而輸入數字是不允許的:
if (!ereg(“[a-Z]“, $first) || !ereg(“[a-Z]“, $last)) {
現在我們更進(jìn)一步,檢查字符串的長(cháng)度是否是四到六位字符長(cháng)pdf怎么復制其中一頁(yè)。用[[:alpha:]]是檢查字符是不是字母的簡(jiǎn)單方式。大括號內的數字檢查字符個(gè)數。還要說(shuō)明的是,^ 和 $ 分別代表字符串的開(kāi)始和結束。
if (!ereg(“^[[:alpha:]]{4,6}$“, $first) || !ereg(“^[[:alpha:]]{4,6}$“, $last)) {
最后,我們來(lái)構造一個(gè)常規表達式,來(lái)檢驗電子郵件地址的有效性pdf怎么復制其中一頁(yè)。這種檢驗方式的效果已經(jīng)引發(fā)了相當多的討論。沒(méi)有什么東西是十全十美的,不過(guò)我下面給出的這段程序還是十分奏效的。
if (!ereg(’^[-!#$%&’*+\\./0-9=?A-Z^_`a-z{|}~]+’.
’@’.
’[-!#$%&’*+\\/0-9=?A-Z^_`a-z{|}~]+\.’.
’[-!#$%&’*+\\./0-9=?A-Z^_`a-z{|}~]+$’, $last)) {
別花太多時(shí)間來(lái)細究這段代碼了,還是先到下一頁(yè)內容吧pdf怎么復制其中一頁(yè)。
四、 簡(jiǎn)便方法
前面的常規表達式怎么樣?很有意思,是吧?要是在每個(gè)需要檢查電子郵件地址的程序里都寫(xiě)上這么一段程序,那才真叫有意思呢?!想想看吧,得寫(xiě)那么亂七八糟的一段程序,還得寫(xiě)上那么多遍!...不過(guò),當然了,還有更簡(jiǎn)便的方法pdf怎么復制其中一頁(yè)。
還記得前面我們學(xué)過(guò)的頭文件嗎?它能讓我們寫(xiě)一段程序,象是這個(gè)電子郵件地址的檢查程序,然后把這段程序包含進(jìn)多個(gè)程序里面去pdf怎么復制其中一頁(yè)。這樣,我們要改寫(xiě)這段程序時(shí),只須改動(dòng)一處就行了,不用修改多個(gè)文件。
但是,要做到這一點(diǎn),我們必須用到函數pdf怎么復制其中一頁(yè)。
我們已經(jīng)用過(guò)很多次函數了pdf怎么復制其中一頁(yè)。每次我們查詢(xún)數據庫或檢查字符串長(cháng)度時(shí),我們都是用函數來(lái)做的。這些函數是PHP自帶的。如果您是位熱心的程序員,您可以用自己編寫(xiě)的函數來(lái)擴充PHP本身的功能。但對本教程而言,這部分內容是太過(guò)高深了一點(diǎn)。我們要創(chuàng )建的函數不是那一種,而是寫(xiě)在PHP腳本程序內部的函數。
函數就是一段程序代碼,我們可以把一個(gè)或多個(gè)值傳給這段代碼,然后這段代碼會(huì )處理我們傳給它的數據并返回一個(gè)值pdf怎么復制其中一頁(yè)。根據實(shí)際需要,函數可以很簡(jiǎn)單,也可以十分復雜。但是只要我們傳進(jìn)去一個(gè)數,然后能得到一個(gè)數,您管它里面有是復雜還是簡(jiǎn)單呢!這就是函數的可愛(ài)之處。
PHP里的函數與C語(yǔ)言里的函數表現差不多pdf怎么復制其中一頁(yè)。當我們定義函數時(shí),必須指明函數需要接收什么樣的數據。一開(kāi)始好象不太好理解為什么它要接收數據進(jìn)去,不過(guò)這樣可以防止發(fā)生一些怪異的問(wèn)題。函數之所以能做到這一點(diǎn),是因為函數里面的變量都是私有變量,也就是說(shuō),它只在該函數內部存在。例如,您在程序中有一個(gè)變量叫$myname,如果您創(chuàng )建了一個(gè)函數,想讓這個(gè)函數也使用那個(gè)$myname變量(值也相同),那是不行的。您可以在函數內部創(chuàng )建一個(gè)變量,名字也叫$myname,這兩個(gè)變量可以各平相處,而各自取不同的值。不過(guò)我可不建議您這么做!您如果真的這么做了,等半年后您再來(lái)修改這樣的程序時(shí),您可能就會(huì )被弄糊涂了。
那我們現在就來(lái)創(chuàng )建一個(gè)函數,先來(lái)個(gè)簡(jiǎn)單的pdf怎么復制其中一頁(yè)。我們要給它取個(gè)名字,指定它要接收什么的變量。在調用這個(gè)函數之前,我們還得定義這個(gè)函數。
<>
<>
<?php
function addnum($first, $second) {
$newnum = $first + $second;
return $newnum;
}
echo addnum(4,5);
?>
</body>
</html>
這就行了!首先,我們創(chuàng )建了第一個(gè)自己的函數pdf怎么復制其中一頁(yè)。我們定義了兩個(gè)新變量,$first和$second,注意它們是怎樣被定義的。在調用這個(gè)函數時(shí),要給這兩個(gè)變量按它們出現的順序賦好值 - 4賦給$first,5賦給$second。然后我們簡(jiǎn)單地把這兩個(gè)數加在一起,返回結果。“返回”在這里的意思是把結果送回去。在程序最后部分我們把數字9顯示出來(lái)。
我們再來(lái)創(chuàng )建一個(gè)函數,讓它對我們的數據庫應用有點(diǎn)幫助pdf怎么復制其中一頁(yè)。一個(gè)能妥善處理錯誤的函數怎么樣?試試下面的程序:
<>
<>
<?php
function do_error($error) {
echo “噢pdf怎么復制其中一頁(yè),好象有點(diǎn)兒?jiǎn)?wèn)題...<>“;
echo “系統報告的錯誤是:$error.\n<>“;
echo “最好是暫時(shí)關(guān)閉網(wǎng)站并通知系統管理員pdf怎么復制其中一頁(yè)。“;
die;
}
if (!$db = @mysql_connect(“l(fā)ocalhost“,“user“, “password“)) {
$db_error = “無(wú)法連接到MySQL數據庫“;
do_error($db_error);
}
?>
</body>
</html>
在運行程序之前,試試關(guān)閉MySQL數據庫,或使用錯誤的用戶(hù)名或口令pdf怎么復制其中一頁(yè)。您會(huì )看到友好的、有用的錯誤信息。細心的朋友會(huì )注意到在mysql_connect()函數之前的那個(gè)@符號。它會(huì )抑制系統錯誤信息,使得程序只能從do_error()函數那里得到有關(guān)的錯誤信息。您還會(huì )注意到,我們可以把一個(gè)在別處定義的變量作為參數傳給函數,而不是在調用時(shí)直接賦一個(gè)值。
還記得我過(guò)函數使用的是私有變量吧?這話(huà)說(shuō)得不完全對pdf怎么復制其中一頁(yè)。事實(shí)上,您可以讓函數訪(fǎng)問(wèn)到函數外面的變量。您可能要寫(xiě)一個(gè)函數,用它來(lái)查詢(xún)數據庫,然后把結果顯示在多個(gè)網(wǎng)頁(yè)中。您不想每次都把數據庫連接標識都傳給函數。在這種情況下,您可以把連接標識定義成一個(gè)全局的變量。例如:
<>
<>
<?php
function db_query($sql) {
global $db;
$result = mysql_query($sql,$db);
return $result;
}
$sql = “SELECT * FROM mytable“;
$result = db_query($sql);
?>
</body>
</html>
這是個(gè)很簡(jiǎn)單的函數,但重要的是,您在調用這個(gè)函數時(shí),不必傳遞$db變量 - 您可以通過(guò) global這個(gè)字使得函數可以訪(fǎng)問(wèn)到該變量pdf怎么復制其中一頁(yè)。在這條語(yǔ)句中您可以定義多個(gè)全局變量,各個(gè)全局變量之間用逗號隔開(kāi)。
最后,您可以使用可選參數,這樣看起來(lái)您已經(jīng)是真正的專(zhuān)家了pdf怎么復制其中一頁(yè)。這里面關(guān)鍵的一點(diǎn)是,在函數中定義參數時(shí)要給它指定一個(gè)缺省值。然后您在調用這個(gè)函數時(shí),如果不為該參數變量指定其他值,那么函數會(huì )自動(dòng)把缺省值賦給這個(gè)變量。如果您指定了其他值,那么缺省值就不起作用了。
不太明白?比方說(shuō),您在連接數據庫時(shí),幾乎總是連接到相同的服務(wù)器,并且使用相同的用戶(hù)名和口令pdf怎么復制其中一頁(yè)。不過(guò)有時(shí)候,您也需要連接到其他的服務(wù)器。看看下面的程序:
<>
<>
<?php
function db_connect($host = “l(fā)ocalhost“, $user=“username“, $pass=“graeme“) {
$db = mysql_connect($host, $username, $password);
return $db;
}
$old_db = db_connect();
$new_host = “site.com“;
$new_db = db_connect($new_host);
?>
</body>
</html>
很“酷”是不是?在定義函數時(shí),函數內部用到的變量也定義好了pdf怎么復制其中一頁(yè)。第一次調用這個(gè)函數時(shí),全部參數變量都是用的缺省值。第二次調用時(shí),服務(wù)器名變了,而用戶(hù)名和口令沒(méi)有變。真是太棒了!
想想您在什么地方還能用到函數pdf怎么復制其中一頁(yè)。您可以用函數來(lái)作數據校驗,來(lái)完成常用的功能,等等。在對Web網(wǎng)頁(yè)上顯示的文字作處理時(shí),我用到了很多函數。我可以一次完成對文字的檢查、解析和修改,來(lái)加入換行符和HTML標記等。
現在,剩下的就是我要給您的一些忠告了pdf怎么復制其中一頁(yè)。
五、進(jìn)階技巧
談起數據庫開(kāi)發(fā),我們有很多東西要學(xué)pdf怎么復制其中一頁(yè)。如果您還沒(méi)有學(xué)習過(guò)怎樣進(jìn)行數據庫設計,和怎樣在不同的平臺上可靠地運行數據庫,那么請您趕快去找本這方面的好書(shū)來(lái)讀一讀。這方面的能力會(huì )帶給您無(wú)法估量的好處,從長(cháng)遠的眼光看,它會(huì )為您節省大量的時(shí)間與精力。還有,認真學(xué)學(xué)MySQL。這是一個(gè)復雜而有趣的數據庫,有很多不錯的文檔。學(xué)學(xué)數據庫的表結構、數據類(lèi)型,還有SQL。如果您真正掌握了SQL,您可以完成相當多的實(shí)際工作。
最后,還有PHPpdf怎么復制其中一頁(yè)。您想要的一切幾乎都可以在PHP的網(wǎng)站上找到,包括全面的文檔、郵件討論組的討論內容、程序代碼庫,等等。學(xué)習PHP的一個(gè)絕好的辦法是研究用戶(hù)手冊中給出的實(shí)例,并查閱網(wǎng)上的代碼。網(wǎng)友們發(fā)表的代碼包括許多函數和類(lèi),您可以在自己的程序中直接使用,而不必自己從頭來(lái)過(guò)。另外,如果您遇到問(wèn)題,郵件討論組是一個(gè)非常值得利用的資源。PHP的開(kāi)發(fā)人員自己也會(huì )參加郵件討論組,還有許多經(jīng)驗豐富的高手們,他們都可以幫助您解決問(wèn)題。
祝您編程順利pdf怎么復制其中一頁(yè),一切順利!
返回頁(yè)首
顯示以前的主題: 所有主題1 天內7 天內2 個(gè)星期內1 個(gè)月內3 個(gè)月內6 個(gè)月內1 年內 最舊的主題最新的主題
首頁(yè) -> 吉人巷精品區 論壇時(shí)間為 北京時(shí)間
第1頁(yè)/共1頁(yè)
訂閱本主題
轉跳到: 選擇一個(gè)版面 生于80----------------生于八零磚場(chǎng)論英雄 開(kāi)拓者----------------程序交流動(dòng)態(tài)網(wǎng)頁(yè)英語(yǔ)學(xué)習 精品專(zhuān)區----------------吉人巷精品區 站務(wù)討論----------------站務(wù)公告論壇建議
您可以發(fā)布新主題
您可以在這個(gè)論壇回復主題
您可以在這個(gè)論壇編輯自己的帖子
您可以在這個(gè)論壇刪除自己的帖子
您可以在這個(gè)論壇發(fā)表投票
您可以管理這個(gè)論壇
論壇管理員控制面板
Powered by phpBB 2.0.3 © 2001, 2002 phpBB Group
中文phpBB開(kāi)發(fā)小組提供技術(shù)支持
021yin.com021yin.com021yin.com/s?__biz=MjM*MjAyNDUyMA==amp;mid=26*0**10*2amp;idx=2amp;sn=f*6**6*c06a*0848f20ea44**a6d8*a...
2023-03-15 80
一、橋梁pvc泄水管該產(chǎn)品具無(wú)味、防腐蝕、抗老化、耐侯性好等諸多特點(diǎn),是以樹(shù)脂為主要原料,注塑或擠壓成型的塑料制品。二、具有抗沖擊強度高、力學(xué)性能高、韌性好、抗折能力強等優(yōu)點(diǎn),減少了施工和使用中的瑣碎問(wèn)題。三、外表美觀(guān)大方,內壁光滑,摩...
2023-03-04 89
佛山畫(huà)冊印刷廠(chǎng)家,畫(huà)冊印刷公司為您提供畫(huà)冊印刷咨詢(xún),畫(huà)冊印刷案例,畫(huà)冊印刷規格及畫(huà)冊印刷報價(jià),讓您實(shí)時(shí)了解畫(huà)冊印刷廠(chǎng)家的最新規格及報價(jià),并提供畫(huà)冊印刷時(shí)的注意事項,印刷出讓您滿(mǎn)意的畫(huà)冊印刷產(chǎn)品。
2023-01-14 108
上海小冊子印刷廠(chǎng)家,小冊子印刷公司為您提供小冊子印刷咨詢(xún),小冊子印刷案例,小冊子印刷規格及小冊子印刷報價(jià),讓您實(shí)時(shí)了解小冊子印刷廠(chǎng)家的最新規格及報價(jià),并提供小冊子印刷時(shí)的注意事項,制作出讓您滿(mǎn)意的小冊子印刷產(chǎn)品。
2023-01-12 113
今日大雪,是二十四節氣中的第二十一個(gè)節氣,冬季的第三個(gè)節氣。仲冬時(shí)節由此正式起頭,降雪、封河、萬(wàn)山積玉。澎湃新聞推出二十四節氣短視頻——大雪·呼倫貝爾丨尋鹿大興安嶺那個(gè)時(shí)節,位于大興安嶺北段西坡的根河市,氣溫已降至零下*0℃。極寒的氣溫...
2022-12-16 108
上篇我們介紹了激光打印機會(huì )帶來(lái)的一些危害,那么今天我們來(lái)講一講如何減少激光打印機給大家帶來(lái)的危害,一起來(lái)看看吧。首先,盡量保持人與打印機之間的適當距離。如果條件允許,可以設置一個(gè)特殊的打印室。打印時(shí),盡量不要靠近打印機,打印后再去取打印材...
2022-10-10 99
掃一掃微信報價(jià)