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

首頁 > 數據庫 > MySQL > 正文

PHP 如何向 MySQL 發送數據

2024-07-24 12:56:30
字體:
來源:轉載
供稿:網友
你應該對 html 表單比較了解了,下面的一段代碼是一個很簡單的 html 表單:

< html>

< body>

< form action=submitform.php3 method=get>

姓 : < input type=text name=first_name size=25 maxlength=25>

名 : < input type=text name=last_name size=25 maxlength=25>

< p>

< input type=submit>

< /form>

< /body>

< /html>

  當你輸入數據,并按下 submit 按鈕后,這個表單將把數據發送到 submitform.php3 。再由這個 php 腳本來處理收到的數據,下面就是 submitform.php3 的代碼:

< html>

< body>

< ?php

mysql_connect (localhost, username, password);



mysql_select_db (dbname);

mysql_query ("insert into tablename (first_name, last_name)

values ('$first_name', '$last_name')

");

print ($first_name);

print (" ");

print ($last_name);

print ("< p>");

print (" 感謝填寫注冊表 ");

?>

< /body>

< /html>

  在代碼的第三行中的 "username" 和 "password" 分別代表你登陸 mysql 數據庫的賬號和密碼。在第五行中的 "dbname" 表示 mysql 數據庫的名稱。在第十三行中的 "tablename" 是數據庫中的一個數據表的名稱。

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

… /submitform.php3?first_name=fred&last_name=flintstone

  因為我們用到的是表單 get 方法,因此數據是通過 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 是如何工作的:

   腳本的開始兩行是:

mysql_connect (localhost, username, password);



mysql_select_db (dbname);

  這兩個函數調用用來打開 mysql 數據庫,具體的參數的含義剛才已經說過了。

   下面的一行是執行一個 sql 語句 :

mysql_query ("insert into tablename (first_name, last_name)

values ('$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 表單來執行這個任務:

< html>

< body>

< form action=searchform.php3 method=get>

請輸入您的查詢內容 :

< p>

姓: < input type=text name=first_name size=25 maxlength=25>

< p>

名 : < input type=text name=last_name size=25 maxlength=25>

< p>

< input type=submit>

< /form>

< /body>

< /html>

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

< html>

< body>

< ?php

mysql_connect (localhost, username, password);



mysql_select_db (dbname);

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

$result = mysql_query ("select * from tablename

where first_name like '$first_name%'

and last_name like '$last_name%'

");

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

do {

print $row["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

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

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

?>

< /body>

< /html>

   當你在表單中輸入了要檢索的內容,再按下 submit 按鈕后,就會進入一個新的頁面,其中列出了所有匹配的搜索結果。下面再來看看這段腳本到底是怎樣完成搜索任務的。

   前面的幾條語句和上面講到的一樣,先是建立數據庫連接,然后選定數據庫和數據表,這些是每個數據庫應用所必需的。然后有這樣的幾條語句:

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

   這幾行用來檢查表單的各字段是否為空。要注意的是那兩個等號,因為 php 的語法大多源于 c 語言,這兒等號的用法也同 c 一樣:一個等號是賦值號,兩個等號才代表邏輯等于。還應該注意的是:當 if 后條件為真時,后面要執行的語句是放在“ { ”和“ } ”中的,并且其中的每一條語句后面都要加上分號表示語句結束。

   百分號 % 是 sql 語言的通配符,理解了之一點后,就該知道這兩行的意思了:如果“ first_name ”字段為空,那么將列出所有的 first_name 。后面的兩句也是同樣的意思。

$result = mysql_query ("select * from tablename

where first_name like '$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 (" ");

print $row["last_name"];

print ("< p>");

} 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["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

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

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

print $row["first_name"];

print (" ");

print $row["last_name"];

print ("< p>");

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

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

print $row[0];

print (" ");

print $row[1];

print ("< p>");

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

echo $row[0], " ", $row[1], "< p>";

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭平县| 岳普湖县| 沙河市| 江油市| 新疆| 庄浪县| 阳城县| 绿春县| 汉源县| 油尖旺区| 江陵县| 襄汾县| 连州市| 军事| 宜章县| 察哈| 石棉县| 尉氏县| 无棣县| 贵溪市| 洪泽县| 昌黎县| 崇信县| 旺苍县| 北票市| 禹州市| 普安县| 凤阳县| 静乐县| 通州市| 禄丰县| 丹寨县| 开远市| 家居| 黔西| 卓尼县| 山东省| 延寿县| 许昌市| 汉寿县| 扎兰屯市|