PHP/MySQL三日通-第二天(二)

來源:互聯網
上載者:User
四、 向伺服器發送資料

  現在我們從資料庫讀取資料已經沒有太多困難了。但是怎麼反過來向資料庫發送資料呢?其實這不是PHP的問題。

  首選,我們建立一個帶有簡單表格的網頁。

  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;form method="post" action="$#@60;?php echo $PATH_INFO?$#@62;"$#@62;

名:$#@60;input type="Text" name="first"$#@62;$#@60;br$#@62;

姓:$#@60;input type="Text" name="last"$#@62;$#@60;br$#@62;

住址:$#@60;input type="Text" name="address"$#@62;$#@60;br$#@62;

職位:$#@60;input type="Text" name="position"$#@62;$#@60;br$#@62;

$#@60;input type="Submit" name="submit" value="輸入資訊"$#@62;

$#@60;/form$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

  同樣要注意$PATH_INFO的用法。就象我在第一課裡講到的,您可以在HTML代碼中的任意位置使用PHP。您也會注意到,表格中的每一個元素都對應著資料庫中的一個欄位。這種對應關係並不是必須的,這麼做只是更直觀一些,便於您以後理解這些代碼。

  還要注意的是,我在Submit按鈕中加入了name屬性。這樣我在程式中可以試探$submit變數是否存在。於是,當網頁被再次調用時,我就會知道調用頁面時是否已經填寫了表格。

  我應該指出,您不一定要把上面的網頁內容寫到PHP程式中,再返過來調用程式本身。您完全可以把顯示表格的網頁和處理表格的程式分開放在兩個網頁、三個網頁甚至更多網頁中,悉聽尊便。放在一個檔案中只是可以使內容更加緊湊而已。

  那好,我們現在加入一些代碼,來檢查使用者在表格中輸入的內容。我會把用$HTTP_POST_VARS把所有查詢參數變數都顯示出來,這隻不過是為了證明PHP確實把所有變數都傳給了程式。這種方法是一個很有用的調試手段。如果您要想看全部的變數,可以用$GLOBALS。  

  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php

if ($submit) {


// 處理表格輸入

while (list($name, $value) = each($HTTP_POST_VARS)) {

echo "$name = $value$#@60;br$#@62;\n";

}

} else{


// 顯示表格

?$#@62;

$#@60;form method="post" action="$#@60;?php echo $PATH_INFO?$#@62;"$#@62;

名:$#@60;input type="Text" name="first"$#@62;$#@60;br$#@62;

姓:$#@60;input type="Text" name="last"$#@62;$#@60;br$#@62;

住址:$#@60;input type="Text" name="address"$#@62;$#@60;br$#@62;

職位:$#@60;input type="Text" name="position"$#@62;$#@60;br$#@62;

$#@60;input type="Submit" name="submit" value="輸入資訊"$#@62;

$#@60;/form$#@62;

$#@60;?php

} // end if,if結束

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

程式現在運行正常,那我們現在就可以取到表格輸入的內容,並把它們發送給資料庫。  
  $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php

if ($submit) {


// 處理表格輸入

$db = mysql_connect("localhost", "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{


// 顯示表格內容

?$#@62;

$#@60;form method="post" action="$#@60;?php echo $PATH_INFO?$#@62;"$#@62;

名:$#@60;input type="Text" name="first"$#@62;$#@60;br$#@62;

姓:$#@60;input type="Text" name="last"$#@62;$#@60;br$#@62;

住址:$#@60;input type="Text" name="address"$#@62;$#@60;br$#@62;

職位:$#@60;input type="Text" name="position"$#@62;$#@60;br$#@62;

$#@60;input type="Submit" name="submit" value="輸入資訊"$#@62;

$#@60;/form$#@62;

$#@60;?php

} // end if,if結束


?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

  您現在已經向資料庫中插入資料了。不過還有很多完善的工作要做。如果使用者沒有填寫某一欄怎麼辦?在需要填入數位地方填了文字怎麼辦?或者填錯了怎麼辦?別擔心。我們一步一步來。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.