色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP 如何向 MySQL 發(fā)送數(shù)據(jù)

瀏覽:2日期:2024-01-19 08:43:24
你應(yīng)該對(duì) HTML 表單比較了解了,下面的一段代碼是一個(gè)很簡(jiǎn)單的 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>;;當(dāng)你輸入數(shù)據(jù),并按下 submit 按鈕后,這個(gè)表單將把數(shù)據(jù)發(fā)送到 submitform.php3 。再由這個(gè) PHP 腳本來處理收到的數(shù)據(jù),下面就是 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 (" 感謝填寫注冊(cè)表 ");;;?>;;< /body>;;< /html>;;在代碼的第三行中的 "username" 和 "password" 分別代表你登陸 MySQL 數(shù)據(jù)庫(kù)的賬號(hào)和密碼。在第五行中的 "dbname" 表示 MySQL 數(shù)據(jù)庫(kù)的名稱。在第十三行中的 "tablename" 是數(shù)據(jù)庫(kù)中的一個(gè)數(shù)據(jù)表的名稱。;; 當(dāng)你按下 submit 之后,可以看到你輸入的名字被顯示在一個(gè)新的頁(yè)面中。再看一看瀏覽器的 URL 欄,它的內(nèi)容應(yīng)該是像這樣的:;;… /submitform.php3?first_name=Fred&last_name=Flintstone;;因?yàn)槲覀冇玫降氖潜韱?GET 方法,因此數(shù)據(jù)是通過 URL 來傳送到 submitform.php3 的。顯然, GET 方法是有局限性的,當(dāng)要傳遞的內(nèi)容很多時(shí),就不能用 GET 了,只能用 POST 方法。但不管用什么方法,當(dāng)數(shù)據(jù)傳送完成后, PHP 自動(dòng)的為每一個(gè)表單中的字段建立一個(gè)和他們的名字(表單的 name 屬性)相同的變量。;; PHP 變量都已用一個(gè)美元符號(hào)開頭的,這樣,在 submitform.php3 腳本處理的過程中,就會(huì)有 $first_name 和 $last_name 這兩個(gè)變量了,變量的內(nèi)容就是你輸入的內(nèi)容。;; 我們來檢查一下你輸入的名字是否真的被輸入到數(shù)據(jù)庫(kù)中了。啟動(dòng) MySQL, 在 mysql> 提示符下輸入:;;mysql> select * from tablename;;;你應(yīng)該可以得到一個(gè)表,內(nèi)容就是你剛才輸入的了:;;+------------+------------+;;| first_name | last_name |;;+------------+------------+;;| 柳 | 如風(fēng);;+------------+------------+;;1 rows in set (0.00 sec);; 我們?cè)賮矸治鲆幌?submitform.php3 是如何工作的:;; 腳本的開始兩行是:;;mysql_connect (localhost, username, password);;;mysql_select_db (dbname);;;這兩個(gè)函數(shù)調(diào)用用來打開 MySQL 數(shù)據(jù)庫(kù),具體的參數(shù)的含義剛才已經(jīng)說過了。;; 下面的一行是執(zhí)行一個(gè) SQL 語(yǔ)句 :;;mysql_query ("INSERT INTO tablename (first_name, last_name);;VALUES ('$first_name', '$last_name');;");;; mysql_query 函數(shù)就是用來對(duì)選定的數(shù)據(jù)庫(kù)執(zhí)行一個(gè) SQL 查詢。你可以在 mysql_query 函數(shù)中執(zhí)行任何的 SQL 語(yǔ)句。被執(zhí)行的 SQL 語(yǔ)句必須作為一個(gè)字符串用雙引號(hào)括起來,在其中的變量要用單引號(hào)括起來。;; 有一個(gè)要注意的事情: MySQL 的語(yǔ)句要用一個(gè)分號(hào) (;) 結(jié)束,一行 PHP 代碼同樣也是這樣,但是在 PHP 腳本中的 MySQL 語(yǔ)句是不能有分號(hào)的。也就是說,當(dāng)你在 mysql> 的提示符下輸入 MySQL 命令,你應(yīng)該加上分號(hào):;;INSERT INTO tablename (first_name, last_name);;VALUES ('$first_name', '$last_name');;; 但是如果這個(gè)命令出現(xiàn)在 PHP 腳本中,就要去掉那個(gè)分號(hào)了。之所以這樣做,是因?yàn)橛械恼Z(yǔ)句,如 SELECT 和 INSERT ,有沒有分號(hào)都可以工作。但是還有一些語(yǔ)句,如 UPDATE ,加上分號(hào)就不行了。為了避免麻煩,記住這條規(guī)則就好了。;;PHP 如何從 MySQL 中提取數(shù)據(jù);;現(xiàn)在我們建立另外一個(gè) HTML 表單來執(zhí)行這個(gè)任務(wù):;;< html>;;< body>;;< form action=searchform.php3 method=GET>;;請(qǐng)輸入您的查詢內(nèi)容 :;;< 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>;;同樣,還要有一個(gè) php 腳本來處理這個(gè)表單,我們?cè)俳⒁粋€(gè) 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 " 對(duì)不起,再我們的數(shù)據(jù)庫(kù)中,沒有找到符合的紀(jì)錄。 ";};;?>;;< /body>;;< /html>;; 當(dāng)你在表單中輸入了要檢索的內(nèi)容,再按下 SUBMIT 按鈕后,就會(huì)進(jìn)入一個(gè)新的頁(yè)面,其中列出了所有匹配的搜索結(jié)果。下面再來看看這段腳本到底是怎樣完成搜索任務(wù)的。;; 前面的幾條語(yǔ)句和上面講到的一樣,先是建立數(shù)據(jù)庫(kù)連接,然后選定數(shù)據(jù)庫(kù)和數(shù)據(jù)表,這些是每個(gè)數(shù)據(jù)庫(kù)應(yīng)用所必需的。然后有這樣的幾條語(yǔ)句:;;if ($first_name == "");;{$first_name = '%';};;if ($last_name == "");;{$last_name = '%';};; 這幾行用來檢查表單的各字段是否為空。要注意的是那兩個(gè)等號(hào),因?yàn)?PHP 的語(yǔ)法大多源于 C 語(yǔ)言,這兒等號(hào)的用法也同 C 一樣:一個(gè)等號(hào)是賦值號(hào),兩個(gè)等號(hào)才代表邏輯等于。還應(yīng)該注意的是:當(dāng) IF 后條件為真時(shí),后面要執(zhí)行的語(yǔ)句是放在“ { ”和“ } ”中的,并且其中的每一條語(yǔ)句后面都要加上分號(hào)表示語(yǔ)句結(jié)束。;; 百分號(hào) % 是 SQL 語(yǔ)言的通配符,理解了之一點(diǎn)后,就該知道這兩行的意思了:如果“ FIRST_NAME ”字段為空,那么將列出所有的 FIRST_NAME 。后面的兩句也是同樣的意思。;;$result = mysql_query ("SELECT * FROM tablename;;WHERE first_name LIKE '$first_name%';;AND last_name LIKE '$last_name%'";;");;;這一行完成了搜索的大部分工作。當(dāng) mysql_query 函數(shù)完成一個(gè)查詢后,它返回一個(gè)整數(shù)標(biāo)志。;; 查詢從所有的記錄中選出那些 first_name 列和 $first_name 變量相同,并且 last_name 列和 $last_name 變量值也相同的記錄,放到暫存的記錄集中,并用返回的整數(shù)作為這個(gè)記錄集的標(biāo)志。;;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 " 對(duì)不起,再我們的數(shù)據(jù)庫(kù)中,沒有找到符合的紀(jì)錄。 ";};;這是最后的一步,就是顯示部分了。 mysql_fetch_array 函數(shù)先提取出查詢結(jié)果的第一行的內(nèi)容,在用 PRINT 語(yǔ)句顯示出來。這個(gè)函數(shù)的參數(shù)就是 mysql_query 函數(shù)返回的整數(shù)標(biāo)志。而 mysql_fetch_array 執(zhí)行成功后,記錄集指針會(huì)自動(dòng)下移,這樣當(dāng)再一次執(zhí)行 mysql_fetch_array 時(shí),得到的就是下一行紀(jì)錄的內(nèi)容了。;; 數(shù)組變量 $row 被 mysql_fetch_array 函數(shù)建立并用查詢的結(jié)果字段來填充,數(shù)組的每一個(gè)分量對(duì)應(yīng)于查詢結(jié)果的每一個(gè)字段。;; 如果有符合的紀(jì)錄被找到,變量 $row 不會(huì)空,這時(shí)就會(huì)執(zhí)行花括號(hào)中的語(yǔ)句:;;do {;;print $row["first_name"];;;print (" ");;;print $row["last_name"];;;print ("< p>");;;} while($row = mysql_fetch_array($result));;;這是一個(gè) do … while 循環(huán)。與 while 循環(huán)不同的是,它是先執(zhí)行一遍循環(huán)循環(huán)體,然后在檢查循環(huán)條件是否滿足。由于已經(jīng)知道在紀(jì)錄集不為空的情況下,肯定至少要把循環(huán)體執(zhí)行一遍,所以應(yīng)該用到的是 do … while 而不是 while 循環(huán)了。在花括號(hào)中的就是要執(zhí)行的循環(huán)體:;;print $row["first_name"];;;print (" ");;;print $row["last_name"];;;print ("< p>");;; 然后就是檢查 while 條件是否滿足。 Mysql_fetch_array 函數(shù)再次被調(diào)用,來得到當(dāng)前紀(jì)錄的內(nèi)容。這個(gè)過程一直循環(huán),當(dāng)沒有下一條紀(jì)錄存在時(shí), mysql_fetch_array 返回 false ,循環(huán)結(jié)束,紀(jì)錄集也就被完全的遍歷了一次。;;mysql_fetch_array($result) 返回的數(shù)組,不僅可以用字段名來調(diào)用,也可以像一般的數(shù)組那樣,用下標(biāo)來引用數(shù)組的各個(gè)分量。這樣,上面的代碼還可以寫成這樣:;;print $row[0];;;print (" ");;;print $row[1];;;print ("< p>");;;我們還可以用 echo 函數(shù)來把這四條語(yǔ)句寫的緊湊一些:;;echo $row[0], " ", $row[1], "< p>";;;當(dāng)沒有任何匹配的紀(jì)錄被找到時(shí),在 $row 中就不會(huì)有任何內(nèi)容,這時(shí)就會(huì)調(diào)用 if 語(yǔ)句的 else 子句了:;;else {print " 對(duì)不起,再我們的數(shù)據(jù)庫(kù)中,沒有找到符合的紀(jì)錄。 ";};;
標(biāo)簽: PHP
主站蜘蛛池模板: 国产欧美日韩一区二区三区在线 | 国产一线视频在线观看高清 | 亚洲成人第一页 | 玖草资源在线 | 国产好片无限资源 | 亚洲一区二区三区影院 | 不卡国产视频 | 欧美成人精品福利在线视频 | 欧美国一级毛片片aa | 久久一日本道色综合久久 | 欧美激情国内自拍偷 | 久久精品国产亚洲7777小说 | 在线国产网站 | 成人欧美一区二区三区黑人免费 | 性欧美videos俄罗斯 | 国产黄色片在线观看 | 成人区视频爽爽爽爽爽 | 免费播放欧美毛片欧美aaaaa | 久久夜夜视频 | 成人韩免费网站 | 中文字幕成人免费高清在线视频 | 香港三级网站 | 免费国产a国产片高清 | 国产男女爽爽爽爽爽视频 | 毛片在线免费观看网站 | 精品丝袜国产自在线拍亚洲 | 久久r视频 | 成年人免费观看网站 | 97欧美精品一区二区三区 | 一级成人毛片 | 97超在线| 日本一区二区三区精品视频 | 中文字幕日本一区波多野不卡 | 可以看毛片的网址 | 亚洲系列在线 | yy6080久久亚洲精品 | 手机看片高清国产日韩片 | 男女男免费视频网站国产 | 日本不卡不码高清免费观看 | 天堂精品高清1区2区3区 | 久久精品国产免费中文 |