国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

用PHP和MySQL構建一個數據庫驅動的網站(四)

2024-07-24 12:56:16
字體:
來源:轉載
供稿:網友
摘要

  在這一章中,我們將介紹php這個服務器端的腳本語言。我們將會看到,這個語言可以很好地支持與mysql數據庫的通信。

(2002-08-29 14:10:52)

--------------------------------------------------------------------------------
by wing, 出處:linuxaid


第三章:php入門

  在上一章中,我們學習了如何使用mysql數據庫引擎在一個簡單的數據庫(只包含一個叫jokes的數據表)中存儲一個笑話的列表。當時,我們是通過在mysql客戶端的命令行來輸入sql命令(查詢語句)來完成的。在這一章中,我們將介紹php這個服務器端的腳本語言。我們將會看到,這個語言可以很好地支持與mysql數據庫的通信。

php簡介

  正如我們在前面提到的,php是一個服務器端的腳本語言。這個概念可能很難理解,特別是如果你以前只用過html和javascript來設計過網頁時更是如此。一個服務器端的腳本程序與javascript在許多地方有點相像,兩者都允許你在web頁面的html中插入一些程序(腳本)。其結果就是,這些腳本使你可以控制在瀏覽器窗口內會顯示什么,這顯然要比直接使用html要來得靈活得多。

  javascript和php的關鍵的不同點是:當web瀏覽器解釋javascript時,包含這個腳本的web頁面已經被下載了,而對于象php這樣的服務器端腳本程序來說,解釋的工作是由服務器在將頁面發出到瀏覽器之前完全的。解釋工作完成后,web頁面中的php的代碼將由腳本運行的結果所代替,瀏覽者看到的完全是標準的html文件。腳本是完全由服務器來處理的。這也就是它的命名的由來:服務器端腳本程序。

  讓我們再回頭看看我們在第一章里建立的示例today.php:


<html>
<head>
<title>today's date</title>
</head>
<body>
<p>today's date (according to this web server) is</p>
<?ph
  echo( date("l, f ds y.") );
?>
</body>
</html>



  這個程序中的絕大多數是采用html格式的。只有在中間的行是用php寫的。 表示“結束php代碼”。web服務器在將這個web頁面發送到請求它的瀏覽器之前會對這個兩個標識符之前的所有內容進行處理,并將其轉換成標準的html代碼。瀏覽器接受到的頁面將是這樣的:


<html>
<head>
<title>today's date</title>
</head>
<body>
<p>today's date (according to this web server) is</p>
wednesday, june 7th 2000.
</body>
</html>



  請注意,現在所有的php代碼都沒有被顯示。它們被相應的標準的html所取代,能過這個例子,我們可以看到服務器端腳本的幾個優勢:

  不存在瀏覽器兼容的問題。php腳本僅僅是由web服務器來解釋的,所以我們不必擔心你使用的語言是否能被你的訪問者的瀏覽器所支持。

  可以訪問服務器端的資源。在上面的例子中,我們在web頁面中放置了web服務器的日期。而當我們使用的是javascript,要實現同樣的功能,我們只能顯示web瀏覽器在上面運行的計算機的日期。這個例子還對于使用服務器端的資源還不是十分典型的,事實上我們可以很方便地插入一些其他的信息,而這些信息只能通過運行在服務器上的腳本來調用,例如,運行在web服務器上的mysql數據庫中存儲的信息。

  簡化了客戶端的裝載。javascript會明顯降低web頁面的顯示速度,因為在顯示這個web頁面之前,瀏覽器首先得運行javascript腳本。而對于服務器端腳本來說,這種負擔將由web服務器獨自承擔。

基本的語法和命令

  對于任何一個用過c、c++、java、javascript、perl或其他源自c的語言的人,php的語法都會讓你覺得非常熟悉。一個php腳本包含一系列的命令(語句),web服務器必須依次處理這些指令。與上面提到的其他語言一樣,php語句也總是以分號(;)結束。

  這是一個典型的php語句:

echo( "this is a test!" );


  這個語句調用了一個叫echo的內置函數,并傳遞給它這么一個字符串:“this is a test! ”。內置函數你可以理解為“不需要另外的說明php就能知道該怎么做”的事情。php有很多的內置函數,我們可以利用它們來做許多事,從發送e-mail到處理存儲在數據庫中的不同類型的數據都是它們的管轄范圍。echo函數只是簡單地將傳遞給它的文本插入到html頁面的當前位置。你可以看看下面這個例子:


<html>
<head>
<title> simple php example </title>
</head>
<body>
<p><?php echo("this is a <b>test</b>!"); ?></p>
</body>
</html>



  如果你給這段代碼起名為test.php(或者test.php3,如果你的web主機還沒有將.php文件配置為php腳本),并將它放置到你的web服務器上,瀏覽器看到的將是這樣的一頁:


<html>
<head>
<title> simple php example </title>
</head>
<body>
<p>this is a <b>test</b>!</p>
</body>
</html>



  請注意,包含html標識符(和)在內的所有文本都被正確地顯示了出來。

  你也許會感到疑惑,我們為什么要在這里使用括號和引號。引號在php中是用來標志字符串的開始和結束。括號有雙重作用,首先,它指出echo是一個你想要調用的函數,其次,它標志了這個函數的參數的開始和結束。通過參數,你可以指揮你的函數去干什么。對于echo函數,我們只需要給它一個字符串,用來在頁面上顯示,但是我們將會看到有些函數有幾個參數(在這種情況下,我們用逗號分開各個參數)。即使對于沒有參數的函數,我們仍需要有括號,只不過在括號中間我們不必輸入任何內容。

變量和運算符

  php中的變量與許多其它程序中的變量一樣。當還未被初始化時,變量僅僅是一個假想的容器的名字,其中可以存放任何數值。下面的語句建立了一個叫$testvariable(在php中所有的變量都以一個美元符開始)并將其賦值為3:

$testvariable = 3;


  php是一個“寬松類型”的語言,這就是說,一個變量可以包含任何類型的數據(數字、字符串或者其他類型),在它的存活期內其類型可以自由地轉換。所以如果在上面的語句后再出現這樣的語句,這就意味著給我們的已經存在的$testvariable變量重新賦了一個值。這個變量從一個數值變量變成了一個字符串變量:

$testvariable = "three";


  在上面的兩個語句中我們用到的等于號被稱之“賦值運算符”,它是用來給一個變量賦值的。另外,我們還有一些執行數學運算的運算符:


$testvariable = 1 + 1; //變量賦值為2。
$testvariable = 1 - 1; //變量賦值為0。
$testvariable = 2 * 2; //變量賦值為4。
$testvariable = 2 / 2; //變量賦值為1。



  上面的各行的最后都有一個注釋。注釋是通過插入解釋性的文字來說明我們的代碼的用途,同時它也會通知php解釋程序忽略對這部分語句的解釋。注釋以//開始并在同一行內結束。如果你熟悉在其他語言中的/* */風格的注釋,在php中你也可以這樣用。在我們這個教程中,我們會經常使用注釋來對程序作出解釋。

  現在回到我們上面的四個語句,四個運算符分別被用來完成加、減、乘、除的運算。另外,還有一個運行符是用來連接字符串的:


//給變量賦值為"hi there!".
$testvariable = "hi " . "there!";



  變量可以被應用在很多使用實際數值的地方。你可以看看下面的例子:


$var1 = "php"; //將$var1賦值為"php"
$var2 = 5; //將$var2賦值為5
$var3 = $var2 + 1; //將$var3賦值為6
$var2 = $var1; //將$var2賦值為"php"
echo($var1); //輸出"php"
echo($var2); //輸出"php"
echo($var3); //輸出6
echo($var1 . " rules!"); //輸出"php rules!"
echo("$var1 rules!"); //輸出"php rules!"
echo('$var1 rules!'); //輸出'$var1 rules!'



  請特別注意最后的兩行,你可以直接在一個字符串中包含一個變量名,如果你用雙引號將其括起來,將會用該變量的值代替變量名。而最后一行證明,如果你使用的是單引號,是不會作這種轉換的。

用戶交互和表單

  對于許多我們感興趣的php應用來說,最基本的功能是實現與瀏覽這個頁面的用戶的交互。如果你熟悉javascript,你可能會習慣于這么一種事務處理的模式,那就是對用戶的許多行動直接作出反應(例如將鼠標移動到頁面上的一個連接)。而對于php這樣的服務器端腳本程序而言,它用來實現與用戶交互的活動范圍要小得多,與用戶的交互僅僅發生在用戶向服務器發出請求以及服務器用一個動態頁面作出回應之間。

  用戶與php實現交互的關鍵是理解用戶對一個新web頁面發出的請求中可能包含的發出信息。我們將會看到,php使得這個工作極為簡單。

  最簡單的方法是使用“url查詢字符串”在頁面請求中發出信息。如果你曾經看到過一個在文件名后包含問號的url,那就是采用的這種技術。讓我們來看一個簡單的例子。建立一個標準的html文件(不一定使用.php擴展名,在這個文件中將不包含任何php代碼),并在其中加入以下連接:

hi, i'm kevin!


  這是指向一個叫welcome.php的文件的連接,但是在連接這個文件的同時,我們還在頁面請求中傳遞了一個變量。這個變量是被作為“查詢字符串”的一部分傳遞的,它位于url的問號后面。這個變量的名字是name,它的值是kevin。也就是說,我們建立了一個連接,這個連接裝載welcome.php并告知這個文件中包含的php代碼:name等于kevin。

  要清楚這么做對我們有什么好處,我們需要看看welcome.php。 同樣地將其作為一個新的html文件來建立,但是這一次要記得使用.php 擴展名,這會告訴web服務器在這個文件中有一些php代碼需要解釋。如果你的web服務器還不接受.php作為php文件的擴展名,你可能需要將其改名為welcome.php3(在這種情況下,你也需要相應調整上面的代碼中的連接)。在這個新文件中,輸入以下內容:


<?php
  echo( "welcome to our web site, $name!" );
?>



  現在,如果你用第一個文件中連接去裝載第二個文件,你會看到這一頁顯示“welcome to our web site, kevin!”,這個通過url的查詢字符串傳遞過來的變量的值被自動地賦予了一個叫$name的變量,我們在一段文本中顯示了這個傳遞過來的變量。

  如果你需要的話,你也可以通過查詢字符串傳遞幾個變量。讓我們看看這個例子的稍微復雜一點的版本。將html文件中的連接改變為:



hi, i'm kevin yank!



  這一次,我們傳遞了兩個變量:firstname和lastname。這些變量在查詢字符串中被&符號分開。你可以傳遞更多的變量,只要你將每一個name=value對以&符號分開。

  如前所述,我們可以在我們的welcome.php文件中使用這兩個變量的值:


<?php
  echo( "welcome to our web site,
$firstname $lastname!" );
?>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淄博市| 九寨沟县| 鞍山市| 郎溪县| 保亭| 敦煌市| 洞头县| 灵宝市| 牡丹江市| 海原县| 景谷| 大丰市| 保定市| 托克托县| 余江县| 泗阳县| 青龙| 河津市| 棋牌| 山丹县| 临沂市| 台州市| 秦皇岛市| 托克托县| 古丈县| 三河市| 龙口市| 日喀则市| 洪江市| 安塞县| 西城区| 沙河市| 武宁县| 广宁县| 蓝田县| 满洲里市| 白玉县| 海南省| 崇文区| 长春市| 什邡市|