首頁 >後端開發 >php教程 >PHP 如何向 MySQL 傳送資料_PHP教學課程

PHP 如何向 MySQL 傳送資料_PHP教學課程

WBOY
WBOY原創
2016-07-21 16:02:38855瀏覽

你應該對HTML 表單比較了解了,下面的一段程式碼是一個很簡單的HTML 表單:  

  

  


  


  


.php3 method=GET>  

姓:   

名:
名:   

  

  

  


  


  


  

/html>  

  當你輸入數據,並按下submit 按鈕後,這個表單將把數據發送到submitform.php3 。再由這個PHP 腳本來處理收到的數據,以下是submitform.php3 的程式碼:  

  

  


  
mysql_connect (localhost, username, password);  



mysql_select_db (dbname);  

INSINS_gol (pINSm​​ fat; 🎜>VALUES ('$first_name', '$last_name')  

");  

print ($first_name);  

print ($first_name);  

print ($first_name);  

print ($first_name);  


print ($last_name);  

print ("");  

print (" 感謝填寫登錄");  

print (" 感謝填寫登錄");  

print (" 感謝填寫登錄");  

?> >
  

  

  在程式碼的第三行中的"username" 和"password" 分別代表你登陸SQL 資料庫的帳號和密碼。在第五行中的 "dbname" 表示 MySQL 資料庫的名稱。在第十三行的 "tablename" 是資料庫中的一個資料表的名稱。  

   當你按下 submit 之後,可以看到你輸入的名字被顯示在一個新的頁面中。再看瀏覽器的URL 欄,它的內容應該是像這樣的:  

… /submitform.php3?first_name=Fred&last_name=Flintstone  

GE   方法,因此資料是透過URL 傳送到submitform.php3 的。顯然, GET 方法是有限制的,當要傳遞的內容很多時,就不能用 GET 了,只能用 POST 方法。但不管用什麼方法,當資料傳送完成後, PHP 自動的為每個表單中的欄位建立一個和他們的名字(表單的 name 屬性)相同的變數。

   PHP 變數都已用一個美元符號開頭的,這樣,在submitform.php3 腳本處理的過程中,就會有$first_name 和$last_name 這兩個變數了,變數的內容就是你輸入的內容。  

   我們來檢查一下你輸入的名字是否真的被輸入到資料庫中了。啟動MySQL, 在mysql> 提示下輸入:  

mysql> select * from tablename;  

  你應該可以得到一個表,內容就是你剛輸入的了:  
> ------------ ------------   

| first_name | last_name |  

-------- ---- ------------   

| 柳| 如風  

------------ ----- -------   

1 rows in set (0.00 sec)  

   我們再來分析submitform.php3 是如何運作的:  
我們再來分析一下submitform.php3 是如何運作的:  

mysql_connect (localhost, username, password);  


mysql_select_db (dbname);My mysql_select_db (dbname);My mysql_select_db (dbname);My  ,具體的參數的含義剛才已經說過了。    下方的一行是執行一個SQL 語句:  mysql_query ("INSERT INTO tablename (first_name, last_name)  ");     mysql_query 函數就是用來對選取的資料庫執行一個SQL 查詢。你可以在 mysql_query 函數中執行任何的 SQL 語句。被執行的 SQL 語句必須當作一個字串用雙引號括起來,在其中的變數要用單引號括起來。     有一個要注意的事情: MySQL 的語句要用一個分號 (;) 結束,一行 PHP 程式碼同樣也是這樣,但是在 PHP 腳本中的 MySQL 語句是不能有分號的。也就是說,當你在mysql> 的提示下輸入MySQL 指令,你應該要加上分號:  INSERT INTO tablename (first_name, last_name)  VALUES ('$first_name' , '$last_name');     但是如果這個指令出現在PHP 腳本中,就要去掉那個分號了。之所以這樣做,是因為有的語句,如 SELECT 和 INSERT ,有沒有分號都可以工作。但還有一些語句,如 UPDATE ,加上分號就不行了。為了避免麻煩,記住這條規則就好了。

PHP 如何從MySQL 中提取資料  

  現在我們建立另一個HTML 表單來執行這個任務:  
  

  

請輸入您的查詢內容:  

  


  


text name=first_name size=25 maxlength=25>  

  

名:   

  

  

  


  


  


同樣,還要有一個php 腳本來處理這個表單,我們再建立一個searchform.php3 檔案:  

  

  

mysql_connect (localhost, username, password);  



mysql_select_db (dbname);  

mysql_select_db (dbname);  
{$first_name = '%';}  

if ($last_name == "")  

{$last_name = '%';}  

{$last_name = '%';}  
WHERE first_name LIKE '$first_name%'  

AND last_name LIKE '$last_name%' ; if ($row = mysql_fetch_array($result)) {  

do {  

print $row["first_name"];  

print $row["last_name"];  

print ("");  

} while($row = mysql_fetch_array($result));   
} else {print " 對不起,再我們的資料庫中,沒有找到符合的紀錄。 ";}  

?>  

  

  

當你要在表單中輸入了按下SUBMIT 按鈕後,就會進入一個新的頁面,其中列出了所有匹配的搜尋結果。就像上面講到的一樣,先是建立資料庫連接,然後選取資料庫和資料表,這些是每個資料庫應用所必需的。 "")  

{$first_name = '%';}  

if ($last_name == "")  

{$last_name = '%';} 

{$last_name = '%';} >
   這幾行用來檢查表單的各字段是否為空。號是賦值號,兩個等號才代表邏輯等於。一條語句後面都要加上分號表示語句結束。為空,那麼將列出所有的FIRST_NAME 。

AND last_name LIKE '$last_name%'"  

");  

  這一行完成了大部分搜尋的工作。當 mysql_query 函數完成一個查詢後,它會傳回一個整數標誌。

   查詢從所有的記錄中選出那些first_name 欄位和$first_name 變數相同,並且last_name 欄位和$last_name 變數值也相同的記錄,放到暫存的記錄集中,並用傳回的整數作為這個記錄集的標誌。

if ($row = mysql_fetch_array($result)) {  

do {  

print $row["first_name"]; 

print $row["first_name"]; ");  

print $row["last_name"];  

print ("");  

} while($row = mysql_fetch_array($result) );  

} else {print " 對不起,再我們的資料庫中,沒有找到符合的紀錄。";}  

  這是最後的一步,就是顯示部分了。mysql_fetch_array 函數先提取查詢結果的第一行的內容,在用 PRINT 語句顯示出來。這個函數的參數就是 mysql_query 函數傳回的整數標誌。而 mysql_fetch_array 執行成功後,記錄集指標會自動下移,這樣當再一次執行 mysql_fetch_array 時,得到的就是下一行紀錄的內容了。  

   陣列變數 $row 被 mysql_fetch_array 函數建立並用查詢的結果欄位來填充,陣列的每一個分量對應於查詢結果的每個欄位。

   如果有符合的紀錄被找到,變數$row 不會空,這時就會執行花括號中的語句:  

do {  

print $row[🎜>do {  

print $row[ "first_name"];  

print (" ");  

print $row["last_name"];  

print ("");  

print ("");  

print ("");  
} while($row = mysql_fetch_array($result));  

  這是一個do … while 迴圈。與 while 迴圈不同的是,它是先執行一次迴圈迴圈體,然後在檢查迴圈條件是否滿足。由於已經知道在紀錄集不為空的情況下,肯定至少要把循環體執行一遍,所以應該用到的是 do … while 而不是 while 循環了。花括號中的就是要執行的循環體:  

print $row["first_name"];  

print (" ");  

print $row[" last_name"];  

print ("");  

   然後就是檢查while 條件是否滿足。 Mysql_fetch_array 函數再次被調用,來得到目前紀錄的內容。這個過程一直循環,當沒有下一條紀錄存在時, mysql_fetch_array 返回 false ,循環結束,紀錄集也就被完全的遍歷了一次。  

mysql_fetch_array($result) 傳回的數組,不僅可以用字段名來調用,也可以像一般的數組那樣,用下標來引用數組的各個分量。這樣,上面的程式碼還可以寫成這樣:  

print $row[0];  

print (" ");  

print $row[1];  
print ("");  

  我們也可以用echo 函數來把這四條語句寫的緊湊一些:  

echo $row[0], " " , $row[1], "";  

  當沒有任何符合的紀錄找到時,在$row 中就不會有任何內容,這時就會調用if 語句的else 子句了:  

else {print " 對不起,再我們的資料庫中,沒有找到符合的紀錄。";}   http://www.bkjia.com/PHPjc/316542.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/316542.html
TechArticle你應該對HTML 表單比較了解了,下面的一段程式碼是個很簡單的HTML 表單: html body form action=submitform.php3 method=GET 姓: input type=text name=first...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn