1
2
3
4
5
6
7
8
9
10
11

PHP操作MySQL方法詳解

發(fā)布時(shí)間:2017-07-20 07:59 &n話照bsp; 發(fā)布人:毛書朋&海友nbsp;  師地 浏覽次數:9280


關聯課件:5子項目五 -PHP操作MySQ場看L方法詳解(點擊在線預覽)



5.3.3  PHP操作MySQL方法詳解

5.3.3.1  PHP很城提供的MySQL操作函數

      PHP提拍放供了大量函數,使用戶可以方便地使用PHP連接到MySQL數據庫,并對(du費志ì)數據進(jìn)行操作。學(xué)習P用綠HP+MySQL數據庫編程,首先要了解這(zhè)些函數,明确具體筆但的步驟,然後(hòu)才能(néng)進(jìn)入實質性開(kāi)發(fā少風)階段。

PHP中可以用來操作MySQL數據庫的函數如表5-1所示。

5-1.1.png

5-1.2.png

      &近資nbsp;這(zhè)些函數中,最常用的有mysql_connect()、mysql_北身select_db()、mysq很睡l_query()、mysql_ fe劇但tch_array()、mysql_山會num_rows()、mysql_close()等男問,下面(miàn)就(jiù)著(zhe)很城重介紹這(zhè)幾個函數的使用子問。


5.3.3.2  在PHP中操鐵煙縱MySQL


1.mysql_connect()函數


      &nb照坐sp; 根據圖5-3中的流程,要在PHP中操作MySQL中的數據,第一雜錯步就(jiù)是連接到數據庫服務器拿呢,也就(jiù)是建立一條PHP程序到MySQL數據讀雜庫之間的通道(dào)。這(zhè)樣(yàng)PHP才能(né友南ng)通過(guò)這(zhè)個通道(dào)來向(xiàn理裡g)MySQL服務器發(fā)送各種(z美到hǒng)指令,并取得指令執行的結果,將(jiāng)這身為(zhè)些結果應用于PHP程序中。mysql_冷坐connect()函數就(jiù)是用來建立和MySQL數據庫的連接。藍河

mysql_connect()函數大喝有5個參數,但是通常情況下隻用前3兒麗個參數,其格式如下:

resource mysql_connect 司個(string server, string 暗公username, string password)

       該函數返回類型爲re懂書source型,即資源型。3個參數分别爲MySQL服務器地址、MySQL用光火戶名、密碼。這(zhè)裡(lǐ)的用戶名可以用超級管理員的,化場也可以用用戶表中存在的其他用戶。如下面(miàn)的書放語句將(jiāng)用超級管理員身份建立一個到本地服務器的連接:好票

$id=mysql_connect ("lo大聽calhost","root","喝視root");

      &n舊聽bsp;其中“localhost”換成(chéng)“127.0.0.1”或好下本地機器的實際IP地址,效果都(dōu)是區些相同的。另外服務器地址後(hòu)面(miàn)可以指定MySQL服務的端購離口号,如果是采用默認的3306端口,則不必指定。秒務如果采用了其他端口,則需要指定,如知但“127.0.0.1:88”表示什草MySQL服務于本地機器的88端口。用戶名和喝坐密碼均需指定(如密碼爲空,則直接用兩(liǎng)個引号即可)。

    &nbs大費p;   將(jiāng)以上代碼寫在一個PHP程序中,寫法如這員下:

<?php

      $id=mys們畫ql_connect("localhost&quo讀唱t;,"root","女妹root");

    &n紙有bsp; echo $id;

?>

      費物 此程序運行之後(hòu),如果執行成(chéng)功,則會(huì間北)輸出一個資源型變量$id的編号,類似于“Resource id #2”。如果紙道執行失敗,則有多種(zhǒng)可能(né制來ng)。如果出現下列提示:

Fatal error: Call to undef路醫ined function mysql_connect in [……]喝音

      &nbs暗妹p;則說(shuō)明本地服務器的MySQL擴展庫尚相草未被(bèi)載入,因此PHP解釋器無法識别MySQL函數。從錢請參照本章第一節的内容進(jì她不n)行重新設置。

如果出現下列提示:

Warning: mysql_connect() [function.mysq綠照l-connect]: Unknown MySQL server ho又市st […]

       則說(shuō)明MyS內飛QL服務器地址錯誤,可能(néng)是輸入有錯分是誤,或服務器沒(méi)有啓動,或端坐北口号不對(duì)。這(zhè)時(就她shí)可以檢查函數的第一個參數是否提供正确,MySQL是否已成(chéng)場城功啓動。

      &n資制bsp;還(hái)有可能(né知綠ng)出現下列提示:

Warning: mysql_connect() [fun司為ction.mysql-connect]: Access denied術刀 for user […]

      &話少nbsp;這(zhè)說(shuō)明用戶名或密碼有錯誤。或者女們本帳号沒(méi)有在MySQL服務器上登錄的權限。

    &nbs森空p;  這(zhè)裡(lǐ)之所以如此詳細錯農地講解該函數,就(jiù)是因爲這(zhè)是連接到MySQL數據庫的第一見街步。隻要這(zhè)一步成(chéng)功了,下面(miàn)的函數放制便都(dōu)能(néng)運行。連接到數據庫是一切工作的起(qǐ)點湖服,因此必須保證此步驟成(chén他錢g)功,才能(néng)繼續下面(miàn)的内容女西。


2.mysql_select_db()函數


       哥有連接到數據庫以後(hòu),還(hái)不能(néng兒船)直接操作某個表,因爲表都(dōu)存儲在各個數據庫中,需要首先選擇要操作樹拿的數據庫,才能(néng)對(duì)這(zhè)鐘下個數據庫中的表進(jìn)行操作。mysql_select_請林db()函數就(jiù)用來指定操作遠銀的數據庫。前面(miàn)的例子中曾在MySQL中創建了一個student數街年據庫,下面(miàn)的代碼將討員(jiāng)連接到數據庫服務器,并把student數據庫作爲當前要明舊操作的數據庫。

1:  <!--文件5-鐘長1.php:連接數據庫服務器,選擇數據庫-->

2:  <HTML都遠>

3:      &l北章t;HEAD>

4:     &年睡nbsp;     公拿<TITLE>連接數據庫服靜海務器,選擇數據庫</TITLE>數樹

5:   &n身遠bsp;  </HEAD>

6:    &自化nbsp; <BODY>

7:   &n讀銀bsp;   &nbs事路p;  <?php

8:     &n樹動bsp;   &影著nbsp;  &n村做bsp; $id=mysql_connect("loc技說alhost","ro數愛ot","root&quo從會t;);

9:   畫國;    &nbs線服p;   &好朋nbsp;  if ($id){

10:   &n東玩bsp;  &nbs時商p;   &n但筆bsp;  &nbs通音p;   echo "遠兒OK,數據庫連接成(chéng)功!<br>";火票

11:      跳門   &關看nbsp;   &請子nbsp;   $ok=mysql_selec舊妹t_db("student",$id);

12:   &黑子nbsp;    &n兒人bsp;  &大車nbsp; if($ok){

13:   &nbs場腦p;    知我    echo "O海如K,選擇數據庫成(chéng)功!飛國";

14:   &nb也遠sp;    &nbs動城p;    }el路微se{

15:   &n北商bsp;   &nbs錢做p;    ech來慢o "OH,選擇數據庫藍又失敗,請确認數據庫是否存在。";聽行

16:   &n新視bsp;  務區;  &nb綠離sp;    }

17:    河關   &nb筆理sp;  &nb厭明sp;  }else{

18:    匠分;   &好做nbsp;   &nbs聽化p;     e土到cho "OH,數據庫連接失敗!請檢查服務器地址、用戶名和地能妹址是否正确!
<br>"媽鐘;;

19:   &錢費nbsp;     錯微;  }

20:    ?亮內>

21:    </BODY>

22: </HTML>

     黃件;  本程序第8行建立了一個到本地My用文SQL數據庫服務器的連接。第11行用my村還sql_select_ db()函數來指定要操作的數據庫。函數第一個參子師數爲數據庫的名字,第二個參數爲應用于哪個連接。第二個參數可以吃體省略,省略時(shí)默認使用當前連接。一般來說(shuō),此線林參數可以直接省略。

    &nbs腦分p;  mysql_s都作elect_db()函數返回一個布爾型值。如果腦生執行成(chéng)功返回true,湖務失敗則返回false。函數沒(mé水要i)有任何錯誤信息提示。因此即使提供的數據庫名有錯誤或數據庫不購店存在,本函數也不會(huì)報錯。程序將(jiā大聽ng)返回結果存放在$ok中,通過(guò)判斷$ok的值來判斷是否有亮執行成(chéng)功。程序5-1.php正确執行的效果如哥請圖5-4所示。

5-4.jpg

圖5-4  程序5-1.php的運行術近結果


3.mysql_query()函數


       連接到數據庫服務器房微,并選擇了要操作的數據庫之後(hòu),下一步街飛就(jiù)向(xiàng)服務器發(fā)送操歌公作指令,也就(jiù)是SQL語句了。第7章講過(guò)的SQL語句,購制在這(zhè)裡(lǐ)可以派上用場了。現在來看一個例子,村志用PHP程序在MySQL中創建一個數據庫newdat鐵門a,并在這(zhè)個數據庫中創建一個表testtable,表的字段可以兒金随意設置幾個。

1:  <!--文件5-2.p什我hp:用PHP創建新數據庫和表-->

2:  <HTM冷鐘L>

3:  &木生nbsp;   <我明HEAD>     跳影;  &nb子銀sp;    城數    &nbs做低p;   &nbs放紙p;     &nb歌門sp;   嗎拿      &又鄉nbsp;     個還;     兒外;     通間    &nbs了愛p;    分分;  

4:     &nb上紙sp;     <T票新ITLE>用PHP創建新數據庫和鄉有表</TITLE>

5:     都制      &坐愛lt;/HEAD>

6:      通務;    地友; <BODY>

7:     &nbs湖相p;     &nbs物知p;   <?php

8:      &花好nbsp;    &nbs用讀p;   &nbs關冷p;   if (!$id=mysql綠門_connect("localhost"輛放,"root",&qu不美ot;root")){

9:      &n拿妹bsp;    &雪從nbsp;  &nbs白電p;     &報書nbsp;  echo "數據庫服務器連接錯誤!這分";

10:  &nb跳北sp;     &nbs煙費p;  &nbs黃近p;     &nb時木sp;    exit;制呢   &nb說近sp;  //如果數據庫服務器連錯女接不成(chéng)功,退出程序執行冷費

11:     &n東秒bsp;  快問     年風;     }

12:     場吧;     器愛;   &nbs兒窗p;    ec輛公ho "數據庫服務器連接成(chéng)功!兒我<br>";

13:  數飛      &通吧nbsp;    &nb訊這sp;    體雨if (!mysql_query(山我"CREATE DATABASE newdata",$會家id)){

14:    &文技nbsp;   &n我亮bsp;    &n現務bsp;   照身;     &服弟nbsp;echo"數據庫創建舞金不成(chéng)功,請檢查賬号權限和數據庫是否已經(jīng)存在!&q綠話uot;;

15:     &n冷一bsp;    &nbs為黑p;    &n又街bsp;  風呢     exit;&n腦書bsp;  &裡數nbsp; //如果數據庫創建不成(chéng)功,退出程序執關內行

16:      村可   &nbs習雪p;  &問個nbsp;  }

17:    &nbs聽錢p;  &nb站媽sp;   &道計nbsp;   藍白echo "數據庫創建成(chéng)功!<鄉月;br>";

18:     &nbs銀站p;    &nb道城sp;    if (!mysql_s村冷elect_db("newda遠不ta",$id)){

19:   &nb雨日sp;   &間對nbsp;   &n知舞bsp;  鐘鐘 echo "數據庫選擇不成(chéng)功!"雜書;

20:  書如   &n對通bsp;     &nb新小sp;   exit話們;     &們東nbsp;   &nb樹少sp;  //如果數據庫選擇不成(中笑chéng)功,退出程序執行

21:     &nbs生姐p;   &nb近站sp;  &林議nbsp;  }

22:   &nbs空麗p;     &nbs計海p;     echo遠鄉 "數據庫選擇成(chéng)員器功!<br>"錯嗎;

23:  &nbs離火p;   &nbs關他p;  &nb水票sp;  輛拿   if (!mysql_query(費一"CREATE TABLE testtable (n友都ame varchar(10), 但場age int(4))",$id)){

24:     &了化nbsp;  &nb房兵sp;    &n能我bsp; echo "數據表創建不成(chéng)功,請服從檢查SQL語句是否正确!";

25:    店海;  &nbs影那p;   錢姐   &行女nbsp; exit;  &員朋nbsp;    通房;     //如果購小SQL執行不成(chéng)功,退出程序執行

26:  &n件嗎bsp;    要黑;      &n歌放bsp; }

27:     從見;     &nb市國sp;    echo "數據表創建成日化(chéng)功!<br>";

28:  &n上媽bsp;     請低   也不    if (mysql_close($i雪要d)){

29:    &nbs還月p;    &n舊是bsp;    女電; echo "數據服務器連接關閉成(內和chéng)功!";

30:   &nbs匠兵p;    &n動物bsp;  近火    }

31:  &nb光這sp;   冷兒      大嗎;   ?>

32:   坐鐘;   &n線術bsp;  鄉又   </BOD自長Y>

33:      拍男; </HTML>

本程序正确執行的效果如圖5-5所示,再次刷新後(h照船òu)的執行效果如圖5-6所示。

5-5.jpg

圖5-5  程序5-2筆中.php正确運行的結果

5-6.jpg

圖5-6  程序5-2.php第二次運行的結果

      程序5-2.ph站從p的輸出結果已經(jīng)詳細說(shuō)明了創建數據庫制你和數據表的基本步驟,程序中注釋也說(shuō)明了每條語句的作用,這(zhè信舞)裡(lǐ)就(jiù)不再多說(shuō)了。如劇會果用phpMyAdmin或第7章講過(guò秒行)的命令提示符進(jìn)入MySQL控制台,就(jiù)會(huì)發媽票(fā)現已經(jīng)成(chéng)功創建了一個名爲new這黑data的數據庫。打開(kāi)此房員數據庫,可以看到數據庫中有一個testtable表。這(zhè上都)也就(jiù)是說(shuō)程序執行的不僅僅是輸出結果成內些(chéng)功,而是真正的成愛算(chéng)功。

       通過(guò吧聽)程序可以看出mysql_query()函數的使用十鄉路分簡單,隻需要將(jiāng)一條S懂畫QL語句作爲參數傳遞過(guò東南)去,即可執行此SQL語句。第二個參路國數$id在一般情況下同樣(yàng)可以省木美略。

       使用mysql_qu著能ery()函數可以向(xiàng)數據庫服多白務器發(fā)送任何合法的SQL指令(前提是數據庫要支持該指令科數)。程序5-2.php隻是測試了CREATE指令,實際上第7章講知少的INSERT、SELECT、UPDATE、DELETE等指少地令同樣(yàng)可以用mysql_query()來執行。下面(m些麗iàn)就(jiù)利用循環向(物煙xiàng)服務器發(fā)送多次INSERT指令,向(xiàng)剛才創建低森的testtable表中插入多條記錄。

1:  <!--文件5-雪為3.php:用PHP向(xiàng)表中插入都物數據-->

2:  <HTML>

3:     人什; <HEAD>

4:     &拍那nbsp;    船服; <TITLE>用PH街金P向(xiàng)表中插入數據</又我TITLE>

5:    &nb間器sp; </HEAD>

6:   筆信;   &l農來t;BODY>

7:   &nbs說南p;    <?時低php

8:      &明你nbsp;   &nb用裡sp; $id=mysql_connect("loc習議alhost","root",&qu喝業ot;root");照自

9:     土輛   &nb線拿sp;   mysql小線_select_db("newd動家ata",$id);

10:    &nb司技sp;   &公微nbsp;  for($i河水=1;$i<6;$i++){亮東

11:    &nb唱讀sp;    數說;  $nl=20+$i;

12:     身飛   &n錯友bsp;  $xm="姓名".$你美i;

13:   新微      &民可nbsp; $sql="INSERT INTO testta志拍ble VALUES('".$和吃xm."',"信雪.$nl.")";

14:   &nb老路sp;    &n喝地bsp;  $excu=mysql_query($sql,$id)問從;

15:     &友光nbsp;  &n影高bsp;  if($excu){

16:   &nbs站船p;   &n草友bsp;   echo $鐘人sql;

17:      東房;  &nbs舊紙p;  echo "第".$i."花長條數據插入成(chéng)功!<br>";

18:      亮生;   &作報nbsp; }else{

19:     &n話通bsp;   我車;   echo &quo都有t;數據插入失敗,錯誤信息:<br黃器>";

20:   理樹;  &n暗山bsp;  &技煙nbsp;  都你; echo mysql_err的件or();  //輸出上一次MySQL執行的錯誤信息

21:     話鐵;       }少們

22: }

23:  &nb可化sp;  mysql_close($id);

24:    ?>文慢

25: </BODY>

26:   聽離;  </HTML>

      爲了節西生省程序代碼,程序5-3.php的第8~9可的行的數據庫服務器的連接、數據庫的街靜選擇就(jiù)沒(méi)有再進(jìn)行正确風校性驗證。程序5-3.php的運行見報結果如圖5-7所示。

5-7.png

圖5-7  程序5-3.php的運行結果

      要驗證5拍有條記錄是否都(dōu)已确實插入到了數據庫中,可以用命令提示符登我相錄控制台,用“SELECT * FROM tes聽腦ttable”命令來浏覽表中的所有數據,也可以用phpMyA請開dmin來浏覽。

      控制台中顯示的數據新能如下:

mysql> select * fro靜數m testtable;

+-------+------+

| name  | ag術東e  |

+-------+------+

| 姓名1 |   21 |

| 姓名2 |   22 |

| 姓名3 |   23 |

| 姓名4 |   24 |

| 姓名5 |   2議聽5 |

+-------+------+

5 rows in set (0.00 sec)

    &影子nbsp; 可見數據确實已經(jīng)成(chéng)功插入到數據庫中。

      程序5-3.php看起(qǐ)來行醫微數較多,但是其結構卻很簡單。讀者可以根據所學(xué)知識分中商析一下。在這(zhè)裡(lǐ)僅指出3點。

      1)第11~12行很得將(jiāng)要插入的兩(liǎng)個字段的術站值放在兩(liǎng)個變量中,黑是然後(hòu)在第13行構造一個SQL語句,第14行執行這(zhè)短理個語句。這(zhè)裡(lǐ)之所以采用變量存放字段值裡購和SQL語句,一是爲了使程序更加易讀,另外可以避免寫成(ch高要éng)一條綜合語句過(guò)于複雜而容易出錯。讀者兵放要尤其注意的是第13行,在構造SQL語句(其實愛行就(jiù)是一個普通字符串)時(sh科是í),不同數據類型的變量用不同的引号連接。其實這(zhè綠短)個問題應該是一個PHP基本語法的問題,很多初學(xué)者在這兒鐵(zhè)個地方容易犯迷糊,因此請讀者多加揣摩,仔細體會(huì)。

     個草; 2)第20行首次使用mysql_error()函城這數。這(zhè)個函數可以返回上一次My在南SQL返回的錯誤信息。當程序出錯時(shí)輸出這(zhè)些錯雪路誤信息對(duì)于程序的調試很有幫助。讀者可以試著(人信zhe)故意寫錯SQL語句,或者故意發(fā)送一條非你能法指令到MySQL服務器,然後(hòu)調用此函數查看返請吧回的錯誤信息。

      3)如果插入數據後(hò化些u)出現了亂碼,則需要設置相關的編碼,因爲這(zhè)裡(lǐ)采紅嗎用的是默認編碼,即Latin1字符集,明知所以就(jiù)省略了向(xi通快àng)數據庫發(fā)送SET CHARACT吧間ER指令。如果數據庫服務器設置的是gb2312鄉頻字符集,必須在第9行後(hòu)加入“mysql_query(&q和東uot;SET CHARACTER SET 作就gb2312");”進(城書jìn)行字符設置。這(zhè)什我條指令與程序功能(néng)無關。這(zhè店錯)條語句是否加入以及具體設置什麼(me)樣(yàng)的字符集與服務器采用著我的MySQL版本以及安裝MySQL時(sh現樹í)的設置有關。而且值得注意的是,插入時(shí)進(jìn)行得白了字符的設置,從數據庫中讀出數據時(shí)也必須進(jìn)要外行同樣(yàng)的設置,否則就(jiù)會(huì)出現亂碼。

    &笑房nbsp; 下面(miàn)再來看微又一個從數據庫中讀取數據并用表格顯示在網頁上的例子。還(hái)是我人用mysql_ query()函數,向(xiàng話輛)數據庫發(fā)送SELECT指令來查詢數據。

1:  <!--文件5-4.php:用PHP從表中讀校業取數據-->

2:  <HTML>

3:      熱火<HEAD>

4:      請雨     <TITLE>用又知PHP從表中讀取數據</TITLE>

5:      <舊店;/HEAD>

6:   答厭;   <BO為白DY>

7:   間明;     媽黃;   <?php

8:     &那好nbsp;     &動區nbsp;     $習亮id=mysql_connect(&quo山子t;localhost",&qu愛靜ot;root","root慢風");

9:   票低;  &nb村弟sp;     &n嗎舞bsp;  草司;   mysql_select_db("n山山ewdata",$id);

10:    &友資nbsp;     頻明;      $query視道="SELECT * FROM testtable"舞畫;;

11:    &聽北nbsp;     話明   家拍   $result=mysql_query($q白鐘uery,$id);

12:    &nb相快sp;      民開;     $datanum=m票月ysql_num_rows($result)民子;

13:     腦門;   遠就;  &nbs書話p;     echo &吧明quot;表testtable中共有&得我quot;.$datanum."條數據<br>&q又通uot;;  海路;

14:     好場    ?&g科兒t;

15:    做年;  <table width="228&討放quot; height="34" bor厭討der="1">

16:   &n錯媽bsp;      &n你看bsp;<?php   數河while ($info=mysql_fetch_array麗吧($result,MySQL_你玩 ASSOC)){   ?>

17:     &很公nbsp;  &nb公子sp; <tr>

18:    &n文黑bsp;    花的   td 裡紅width="99" height="2媽火8"><?php echo $info[&quo坐吧t;name"]?> <議民;/td>

19:     &nb笑新sp;    做愛;  <td width="拍鐘113"><?php echo $info["身雨;age"]?></td>

20:   &n劇唱bsp;    &nb河雨sp; </tr>

21:    見照;      新農;  <?php }?>

22:   &nbs讀分p;    金火  </table>

23:  &nb員熱sp;     &黑門nbsp; <?php mysq錢制l_close($id);?>

24:   &n畫離bsp; </BODY>

25: </HTML>

程序5-4.php的輸出結果如圖數路5-8所示。

5-8.jpg

圖5-8  程序5-4.php在Dreamweaver的顯嗎線示

      &n通媽bsp;序5-4.php在代碼中加入了一月快些HTML代碼,用來産生一個表格。程序又拿很用到了幾個新的函數,下面(miàn)就(jiù)來行校一一介紹。

      1)第11行中東做,向(xiàng)服務器發(fā)送了一條SELECT指令門子。這(zhè)條指令將(jiāng)返回所有滿足條件的記錄。錢那注意返回的記錄是一個資源類型,其内容是若幹條記錄的集地人合,可以成(chéng)爲一個記錄集。不工內能(néng)直接用來輸出,先將(jiāng)返回的數據存放在$resul看刀t中。

      2)第13行,用mysql_num兵在_rows()函數來統計一個記錄集中記錄的條數。注意此些體函數專用于統計MySQL查詢結果記兒飛錄數,不能(néng)用來統計其他數看她據類型的元素個數。

     間慢; 3)第16~21行,充分說(shuō)明了PHP路拍是一種(zhǒng)嵌入式腳本語言,而且要們冷養成(chéng)一個好(hǎo)的習慣,就(jiù)是當有PH讀分P和HTML代碼混合時(shí)盡量把PHP代碼嵌入到HTML飛店中,這(zhè)樣(yàng)在網頁可視化的編輯工具如Dreamwea喝快ver中就(jiù)可以很好(hǎ明從o)地把PHP代碼和網頁界面(miàn)分理拍離開(kāi),便于編輯,如圖5-9所示。

5-9.jpg

圖5-9  程序5-4.php的運行結果

      4日些)第16行是關鍵。這(zhè)一行用到了mysql_fetch_arr體低ay()函數。此函數是PHP+MySQ呢我L編程中最常用的函數之一。此函數的格式如下:

array mysql_fetch_arr坐書ay (resource result開黑 [, int result_type])

      務話該函數的作用是讀取記錄集result中的當前記錄,將(j腦問iāng)記錄的各個字段的值存章美入一個數組中,并返回這(zhè)個數組,然後(hòu)服腦將(jiāng)記錄集指針移動到下一條記錄。如果記錄集已經(jīng)到達又月末尾,則返回false。

      第2個參數result_學店type爲可選,此參數用來設置返回的數組采用什光如麼(me)樣(yàng)的下标。有3個備選值:MySQL_ASSOC、MySQ舊謝L_NUM、MySQL_BOTH,其含義如下:

      ①離和MySQL_ASSOC:返回的數組將(ji城的āng)以該記錄的字段名稱作爲下标。如從她在本例中要輸出此數組中的“姓名”字段,可近聽以用$info[‘name’]。這(zhè)裡(lǐ)$info是數組煙謝名,“name”是存放姓名的字段名。

      ②MySQL_NUM:返回時生的數組以從0開(kāi)始的數字爲下标。在本例中,返回的每條記錄隻有兩(liǎ事拍ng)個字段,那麼(me)數組也就(j地快iù)隻有兩(liǎng)個元素,分别用$info[0]、$info[1]來引國如用。

      ③MySQL_BOTH:返回的玩長數組既可以用字段名爲下标,也可以用數字爲下标。錯車在本例中,既可以用$info[0]來取得姓名,也可數外以用$info[‘name’]來取得。

      讀者可以自行修改程序,對(duì)跳北上述3個參數進(jìn)行測試。

      此外,PHP中還(hái)有m呢女ysql_fetch_row()、mysql_f畫也etch_assoc()、my靜來sql_fetch_object()等函數些線,這(zhè)些函數的作用與用法都(dōu)和mysql_fetch_a熱東rray()函數相似,讀者可以參考PHP手冊,了解這(zhè)城影幾個函數的使用。

      用m票唱ysql_query()函數,結合第8章講過(guò)的S吃得QL語句,還(hái)可以輕松實現對(d國熱uì)表内數據的删除和修改,如:

<?php

     $話少id=mysql_connect(“localhost”,”r跳日oot”,”1234”);

     mysql著文_select_db(“newdata”,$id);

   &n件服bsp; mysql_query(“D黃月ELETE FROM test能科table”,$id);

     mysql_clos木就e($id);

?>

     這(zhè)段程序執行後(hòu)們腦,會(huì)删除表testtable中的全部數據。

     此外,用快要UPDATE語句可以實現對(duì)表内數據的修改,這(zhè)裡(l飛腦ǐ)不再舉例,讀者可以自行編寫程序練習。


4.mysql_close()函數


    &nbs女木p;此函數用來關閉一個數據庫連接,其格式如下照美;

bool mysql_close ( [通工resource link_identifier] )

     議好; 本函數隻有一個可選參數link_identifier。此參數表示要關閉的的要連接的ID。也就(jiù)是mysql_connect()函數小好執行成(chéng)功後(hòu)返回的一個生明連接标記。參數爲空時(shí)表示關閉當前連接。該函數返回一要亮個布爾型結果。當關閉成(chéng)功時(shí)返回true,關閉失敗草站是返回false。

<?php

     $id=my弟得sql_connect("localhost",&qu子用ot;root","123和北4");

   靜影  if(mysql_close($id)){

   &nbs時舊p;    echo"外匠關閉數據庫連接成(chéng)功!&q通月uot;;

     }else{

      &n電厭bsp; echo"關閉數據庫連接失敗!&q匠放uot;;

     高雨}

?>

       上面(miàn)的窗光例子演示了mysql_close()函數的使用。事(shì)實上,當一答西個PHP腳本(也就(jiù)是一個PHP頁面(miàn)以及它的包含文件)訊黑執行結束時(shí),這(zhè)個腳本中打開(道懂kāi)的PHP連接也會(huì)同時物體(shí)被(bèi)關閉。因此一般情況下即使忘記了手工關閉也沒(mé些飛i)有關系。但是數據庫使用完畢後(hòu)關閉連歌白接是一個很好(hǎo)的編程習慣。



  • 孫淑平 2018-01-07 16:13:23舞算
    mysql_query()-查暗線詢MySQL 格式: resource近報 mysql_query (stri工河ng query, [resource link_id讀為]) 例: $linkI笑喝d = @mysql_conn輛北ect("localhost&qu她請ot;, "username", &書舞quot;password") or die("不能(né黃美ng)連接到Mysql Server&qu紅懂ot;); @mysql_select_db(&q靜見uot;MyDatabase") or die("不能動學(néng)選擇這(zhè)個數據庫,或者數據庫不存在長我"); $query = "select * f在女rom MyTable"; $result 體是= mysql_query($query); mys是老ql_close(); 說(shuō用秒)明:若SQL查詢執行成(chéng)功,的吃則返回資源标識符,失敗時(shí)返回FALSE。若執行更新成(chéng們金)功,則返回TRUE,否則返回FALSE
  • 劉鑫蕊 2018-01-09 16:13:04
    老師講的很詳細,從中學(xué)到了很多。
  • 馬文琦 2018-01-09 16:17地爸:15
    函數與數據庫之間密切聯系
  • 嶽猛 2018-01-09 16:28:43
    經(jīng)過(guò)學(xué)習自己試了一下學(x明男ué)會(huì)了好(hǎo)多的知識
  • 魏德旺 2018-01-09 16:30:33
    内容很多,很詳細,慢慢細細品味就(jiù)知道(dào)其中的意義了 ,雖然總不紙是出錯,但學(xué)會(huì)的感覺很爽