540 likes | 688 Views
PHP5&MySQL 程式設計. 第 12 章 存取 My SQL 資料庫. 12-1 PHP 與 MySQL 資料庫. PHP 提供了數十個函式供我們存取 MySQL 資料庫,包括: mysql_affected_rows() mysql_client_encoding() mysql_close() mysql_connect() mysql_create_db() mysql_data_seek() mysql_db_name() mysql_db_query() mysql_drop_db() mysql_errno(). mysql_error()
E N D
PHP5&MySQL程式設計 第12章 存取My SQL資料庫
12-1PHP與MySQL資料庫 • PHP提供了數十個函式供我們存取MySQL資料庫,包括: • mysql_affected_rows() • mysql_client_encoding() • mysql_close() • mysql_connect() • mysql_create_db() • mysql_data_seek() • mysql_db_name() • mysql_db_query() • mysql_drop_db() • mysql_errno()
mysql_error() • mysql_fetch_array() • mysql_fetch_assoc() • mysql_fetch_field() • mysql_fetch_object() • mysql_fetch_row() • mysql_field_len() • mysql_field_name() • mysql_field_seek() • mysql_field_table() • mysql_field_type() • mysql_free_result() • mysql_get_client_info()
mysql_get_host_info() • mysql_get_proto_info() • mysql_get_server_info() • mysql_list_dbs() • mysql_list_fields() • mysql_list_tables() • mysql_num_fields() • mysql_num_rows() • mysql_pconnect() • mysql_query() • mysql_result() • mysql_select_db()
12-2 建立與關閉資料連接 12-2-1 建立資料連接 一、使用mysql_connect() 函式建立資料連接 我們可以使用mysql_connect() 函式建立資料連接,其語法如下: mysql_connect([string server [, string username [, string password [, bool new_link]]]])
\ch12\mysql_connect.php 01:<HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>建立資料連接</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword"); 09: if (!$link) 10: { 11: die("無法建立連接"); 12: } 13: echo "成功建立連接"; 14: ?> 15: </BODY> 16:</HTML>
二、使用mysql_pconnect() 函式建立永久資料連接 除了mysql_connect() 函式之外,您也可以選擇使用mysql_pconnect() 函式建立永久資料連接,其語法如下: mysql_pconnect([string server [, string username [, string password]]])
\ch12\mysql_pconnect.php 01:<HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>建立資料連接</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_pconnect("localhost", "root", "mypassword"); 09: if (!$link) 10: { 11: die("無法建立連接"); 12: } 13: echo "成功建立連接"; 14: ?> 15: </BODY> 16:</HTML>
12-2-2 關閉資料連接 • mysql_close([resource link_identifier]) \ch12\mysql_close.php 01:<HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>建立資料連接</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword"); 09: if (!$link) 10: { 11: die("無法建立連接"); 12: } 13: echo "成功建立連接"; 14: mysql_close($link); 15: ?> 16: </BODY> 17:</HTML>
12-3 操作MySQL資料庫伺服器 12-3-1 取得預設字集名稱 mysql_client_encoding([resource link_identifier]) \ch12\mysql_client_encoding.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得資料連接所使用的預設字集名稱</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); $charset = mysql_client_encoding(); echo "最後開啟之資料連接所使用的字集名稱: $charset"; mysql_close($link); ?> </BODY> </HTML>
12-3-2 取得MySQL用戶端函式庫的版本資訊 mysql_get_client_info() \ch12\mysql_get_client_info.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得資料連接所使用的預設字集名稱</TITLE> </HEAD> <BODY> <?php echo "MySQL 用戶端程式庫的版本: " . mysql_get_client_info(); ?> </BODY> </HTML>
12-3-3 取得MySQL主機的相關資訊 mysql_get_host_info([resource link_identifier]) \ch12\mysql_get_host_info.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得MySQL主機的資訊</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); echo "\$link連線主機為: " . mysql_get_host_info($link); mysql_close($link); ?> </BODY> </HTML>
12-3-4 取得MySQL資料庫協定的版本資訊 mysql_get_proto_info([resource link_identifier]) \ch12\mysql_get_proto_info.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得MySQL資料庫協定的版本資訊</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); echo "\$link 資源變數的協定版本為: " . mysql_get_proto_info($link); mysql_close($link); ?> </BODY> </HTML>
12-3-5 取得MySQL資料庫伺服器的版本資訊 mysql_get_server_info([resource link_identifier]) \ch12\mysql_get_server_info.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得MySQL資料庫的版本資訊</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); echo "\$link 連線主機的資料庫版本為: " . mysql_get_server_info($link); mysql_close($link); ?> </BODY> </HTML>
12-3-6 建立資料庫 mysql_create_db(string database_name [, resource link_identifier]) \ch12\mysql_create_db.php 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>建立資料庫</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword"); 09: if (!$link) 10: { 11: die("建立資料連接失敗"); 12: } 13: 14: if (mysql_create_db("test_base")) 15: { 16: echo "成功建立指定之資料庫"; 17: } 18: else 19: { 20: echo "無法建立指定之資料庫"; 21: } 22: 23: mysql_close($link); 24: ?> 25: </BODY> 26: </HTML>
12-3-7 刪除資料庫 mysql_drop_db(string database_name [, resource link_identifier]) \ch12\mysql_drop_db.php 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>刪除資料庫</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword"); 09: if (!$link) 10: { 11: die("建立資料連接失敗"); 12: } 13: 14: if (mysql_drop_db("test_database")) 15: { 16: echo "成功刪除指定之資料庫"; 17: } 18: else 19: { 20: echo "無法刪除指定之資料庫"; 21: } 22: 23: mysql_close($link); 24: ?> 25: </BODY> 26: </HTML>
12-3-8 取得操作MySQL資料庫伺服器的錯誤訊息 mysql_errno([resource link_identifier]) mysql_error([resource link_identifier]) \ch12\mysql_error.php 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>顯示錯誤代碼及訊息</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = @mysql_connect("192.168.0.100", "root", "mypassword"); 09: if (!$link) 10: { 11: die("無法建立連接<BR><BR>" . mysql_errno() . " " . mysql_error()); 12: } 13: echo "成功建立連接"; 14: mysql_close($link); 14: ?> 15: </BODY> 16: </HTML>
12-4 執行SQL命令 12-4-1 開啟資料庫 mysql_select_db( string database_name [, resource link_identifier]) ch12\mysql_select_db.php (下頁續) 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>開啟資料庫</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword"); 09: if (!$link) 10: {
\ch12\mysql_select_db.php (接上頁) 11: die("無法建立連接<BR><BR>" . mysql_error()); 12: } 13: 14: $db_selected = mysql_select_db("students", $link); 15: if (!$db_selected) 16: { 17: die("無法開啟students資料庫<BR>" . mysql_error($link)); 18: } 19: 20: mysql_close($link); 21: ?> 22: </BODY> 23:</HTML>
12-4-2 執行SQL命令 一、使用mysql_query() 函式執行SQL命令 mysql_query(string query [, resource link_identifier]) \ch12\mysql_query.php (下頁續) 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>執行SELECT陳述式</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword");
\ch12\mysql_query.php (接上頁) 09: if (!$link) 10: { 11: die("無法建立連接<BR><BR>" . mysql_error()); 12: } 13: $db_selected = mysql_select_db("product", $link); 14: if (!$db_selected) 15: { 16: die ("無法開啟prodcut資料庫<BR>" . mysql_error($link)); 17: } 18: $sql = "SELECT * FROM price WHERE category = '主機板'"; 19: $result = mysql_query($sql, $link); 20: mysql_close($link); 21: ?> 22: </BODY> 23: </HTML>
二、使用mysql_db_query() 函式執行SQL命令 mysql_db_query(string database_name, string query [, resource link_identifier]) \ch12\mysql_db_query.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>執行SELECT陳述式</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); if (!$link) { die("無法建立連接<BR><BR>" . mysql_error()); } $sql = "SELECT * FROM PRICE WHERE category = '主機板'"; $result = mysql_db_query("prodcut", $sql, $link); mysql_close($link); ?> </BODY> </HTML>
12-4-3 取得執行SQL命令被影響的記錄數或欄位數12-4-3 取得執行SQL命令被影響的記錄數或欄位數 PHP提供了下列三個函式,讓我們可以得知在執行SQL命令後,有多少筆記錄或多少個欄位受到影響: • mysql_num_rows() 函式:適用於執行SELECT陳述式,可以傳回被篩選出來的記錄數,其語法如下,參數result為資源識別字 (resource identifier): mysql_num_rows(resource result) • mysql_num_fields() 函式:適用於執行SELECT陳述式,可以傳回被篩選出來的欄位數,其語法如下,參數result為資源識別字 (resource identifier): mysql_num_fields(resource result) • mysql_affected_rows() 函式:適用於執行INSERT、UPDATE、DELETE陳述式,可以傳回有多少筆記錄受到該陳述式的影響,其語法如下,參數link_identifier為連接識別字 (link identifier): mysql_affected_rows([resource link_identifier])
下面的程式碼會執行SELECT陳述式,然後顯示篩選出多少筆記錄及欄位數。 \ch12\mysql_num_rows.php (下頁續) <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得執行SELECT陳述式時,被影響的記錄及欄位數目。</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); if (!$link) { die("無法建立連接<BR><BR>" . mysql_error()); } $db_selected = mysql_select_db("product", $link); if (!$db_selected) { die ("無法開啟prodcut資料庫<BR>" . mysql_error($link)); }
\ch12\mysql_num_rows.php (接上頁) $sql = "SELECT * FROM price WHERE category = '主機板'"; $result = mysql_query($sql, $link); echo "category = 「主機板」 的記錄有 " . mysql_num_rows($result) . " 筆"; echo ",包含 " . mysql_num_fields($result) . " 個欄位。"; mysql_close($link); ?> </BODY> </HTML>
下面的程式碼會執行INSERT陳述式新增一筆記錄,然後顯示受影響的記錄數。下面的程式碼會執行INSERT陳述式新增一筆記錄,然後顯示受影響的記錄數。 \ch12\mysql_affected_rows_01.php (下頁續) <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得執行INSERT陳述式時,被影響的記錄數目。</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); if (!$link) { die("無法建立連接<BR><BR>" . mysql_error()); }
\ch12\mysql_affected_rows_01.php (接上頁) $db_selected = mysql_select_db("product", $link); if (!$db_selected) { die ("無法開啟prodcut資料庫<BR>" . mysql_error($link)); } $sql = "INSERT INTO price(no, category, brand, specification, price, date, url) VALUES('340','CPU','AMD','AMD AthlonXP 2000+','1800','2004/7/25', 'www.amd.com')"; $result = mysql_query($sql, $link); echo "執行INSERT陳述式時,共有 " .mysql_affected_rows($link). " 筆記錄受影響"; mysql_close($link); ?> </BODY> </HTML>
下面的程式碼會執行UPDATE陳述式更新記錄,然後顯示被更新的記錄數。下面的程式碼會執行UPDATE陳述式更新記錄,然後顯示被更新的記錄數。 \ch12\mysql_affected_rows_02.php (下頁續) <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得執行UPDATE陳述式時,被影響的記錄數目。</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); if (!$link) { die("無法建立連接<BR><BR>" . mysql_error()); } $db_selected = mysql_select_db("product", $link); if (!$db_selected) { die ("無法開啟prodcut資料庫<BR>" . mysql_error($link)); }
\ch12\mysql_affected_rows_02.php (接上頁) $sql = "UPDATE price SET url = 'www.westerndigital.com' WHERE url = 'www.wdc.com'"; $result = mysql_query($sql, $link); echo "執行UPDATE陳述式時,共有 ".mysql_affected_rows($link)." 筆記錄受影響"; mysql_close($link); ?> </BODY> </HTML>
12-5 取得欄位資訊 12-5-1 使用mysql_fetch_field() 函式取得欄位資訊 mysql_fetch_field(resource result [, int field_offset]) mysql_fetch_field() 函式的傳回值為object型別,包含下列屬性: • name • table • max_length • not_null • primary_key • unique_key • multiple_key • numeric • blob • type • unsigned • zerofill
舉例來說,假設要取得第2個欄位資訊,可以寫成如下:舉例來說,假設要取得第2個欄位資訊,可以寫成如下: $meta = mysql_fetch_field($result, 1); 假設要取得第2個欄位資訊並顯示其欄位名稱及資料型態,可以寫成如下: $meta = mysql_fetch_field($result, 1); echo "欄位名稱:" . $meta->name; echo "資料型態:" . $meta->type;
\ch12\mysql_fetch_field.php (下頁續) 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>顯示欄位資訊</TITLE> 05: </HEAD> 06: <BODY> 07: <?php 08: $link = mysql_connect("localhost", "root", "mypassword"); 09: $db_selected = mysql_select_db("product", $link); 10: $sql = "SELECT * FROM PRICE WHERE category = '主機板'"; 11: $result = mysql_query($sql, $link); 12: if (!$result) 13: { 14: die("執行命令失敗 <BR>" . mysql_error()); 15: } 16: 17: echo "<TABLE WIDTH='400' BORDER='1'><TR ALIGN='CENTER'>"; 18: echo "<TD>欄位名稱</TD><TD>資料型態</TD><TD>最大長度</TD></TR>"; 19:
\ch12\mysql_fetch_field.php (接上頁) 20: $i = 0; 21: while ($i < mysql_num_fields($result)) 22: { 23: $meta = mysql_fetch_field($result, $i); 24: echo "<TR>"; 25: echo "<TD>" . $meta->name . "</TD>"; 26: echo "<TD>" . $meta->type . "</TD>"; 27: echo "<TD>" . $meta->max_length . "</TD>"; 28: echo "</TR>"; 29: $i++; 30: } 31: echo "</TABLE>" ; 32: mysql_close($link); 33: ?> 34: </BODY> 35: </HTML>
12-5-2 使用其它函式取得欄位資訊 • PHP還提供了下列函式,讓我們取得欄位資訊: • mysql_field_name • mysql_field_type • mysql_field_len • mysql_field_table • 這四個函式均有兩個參數: • 參數result:這是資源識別字。 • 參數field_offset:這是欄位的序號,0表示第一個欄位,1表示第二個欄位,依此類推。
\ch12\mysql_field_info.php (下頁續) <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>顯示欄位資訊</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); $db_selected = mysql_select_db("product", $link); $sql = "SELECT * FROM PRICE WHERE category = '主機板'"; $result = mysql_query($sql, $link); if (!$result) { die("執行命令失敗 <BR>" . mysql_error()); } echo "<TABLE WIDTH='400' BORDER='1'><TR ALIGN='CENTER'>"; echo "<TD>欄位名稱</TD><TD>資料型態</TD><TD>欄位長度</TD></TR>";
\ch12\mysql_field_info.php (接上頁) $i = 0; while ($i < mysql_num_fields($result)) { echo "<TR>"; echo "<TD>" . mysql_field_name($result, $i) . "</TD>"; echo "<TD>" . mysql_field_type($result, $i) . "</TD>"; echo "<TD>" . mysql_field_len($result, $i) . "</TD>"; echo "</TR>"; $i++; } echo "</TABLE>" ; mysql_close($link); ?> </BODY> </HTML>
12-5-3 移動欄位指標 mysql_field_seek() 函式讓我們可以輕鬆地移動欄位指標,其語法如下: mysql_field_seek(resource result, int field_offset) • 參數result:這是資源識別字。 • 參數field_offset:這是欄位的序號,0表示第一個欄位,1表示第二個欄位,依此類推。 例如: $meta = mysql_fetch_field($result, 1); $seek_result = mysql_field_seek($result, 4); $meta = mysql_fetch_field($result);
12-6 取得記錄內容 mysql_result() 函式一次可以取得一個欄位內容,其語法如下: mysql_result(resource result, int row [, mixed field]) • 參數result • 參數row • 參數field 例如: mysql_result($result, 2, 1); mysql_result($result, 2, "category"); 查詢結果所包含的記錄會佔用伺服器的記憶體,雖然在所有程式碼執行完畢後會自動釋放佔用的記憶體,但我們建議您,可以在適當的時候使用mysql_free_result() 函式釋放記憶體,語法如下,參數result為資源識別字: mysql_free_result(resource result)
\ch12\mysql_result.php (下頁續) 01: <HTML> 02: <HEAD> 03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> 04: <TITLE>顯示所有記錄</TITLE> 05: </HEAD> 06: <BODY> 07: <H1 ALIGN="CENTER">零組件報價表</H1> 08: <?php 09: $link = mysql_connect("localhost", "root", "mypassword"); 10: $db_selected = mysql_select_db("product", $link); 11: $sql = "SELECT * FROM PRICE WHERE category = '主機板'"; 12: $result = mysql_query($sql, $link); 13: 14: echo "<TABLE BORDER='1' ALIGN='CENTER'><TR ALIGN='CENTER'>"; 15: 16: for ($i = 0; $i < mysql_num_fields($result); $i++) 17: { 18: $meta = mysql_fetch_field($result, $i); 19: echo "<TD>" . $meta->name . "</TD>"; 20: } 21: echo "</TR>"; 22:
\ch12\mysql_result.php (接上頁) 23: for ($j = 0; $j < mysql_num_rows($result); $j++) 24: { 25: echo "<TR>"; 26: for ($k = 0; $k < mysql_num_fields($result); $k++) 27: { 28: echo "<TD>" . mysql_result($result, $j, $k) . "</TD>"; 29: } 30: echo "</TR>"; 31: } 32: echo "</TABLE>" ; 33: mysql_free_result($result); 34: mysql_close($link); 35: ?> 36: </BODY> 37: </HTML>
12-6-2 使用mysql_db_name() 函式取得記錄內容 mysql_db_name() 函式一次可以取得一個欄位內容,語法如下: mysql_db_name(resource result, int row [, mixed field]) • 參數result • 參數row • 參數field 例如: mysql_db_name($result, 2, 1); mysql_db_name($result, 2, "category"); 查詢結果所包含的記錄會佔用伺服器的記憶體,雖然在所有程式碼執行完畢後會自動釋放佔用的記憶體,但我們建議您,可以在適當的時候使用mysql_free_result() 函式釋放記憶體,語法如下,參數result為資源識別字: mysql_free_result(resource result)
12-6-3 使用mysql_fetch_row() 函式取得記錄內容 PHP提供的mysql_fetch_row() 函式可以用來讀取一筆記錄,然後將記錄指標移到下一筆,倘若讀不到記錄,就傳回FALSE,其語法如下: mysql_fetch_row(resource result) 例如: $row1 = mysql_fetch_row($result); $row2 = mysql_fetch_row($result); $row3 = mysql_fetch_row($result); $row4 = mysql_fetch_row($result); $row5 = mysql_fetch_row($result); echo $row2[2]; echo $row3[0];
12-6-4 使用mysql_fetch_array() 函式取得記錄內容 mysql_fetch_array() 函式的用途和mysql_fetch_row() 函式一樣,都是用來讀取記錄並存放在陣列,然後將記錄指標移到下一筆,倘若讀不到記錄,就傳回FALSE,不同之處在於取得欄位內容時,mysql_fetch_row() 函式是以欄位序號取得欄位內容,而mysql_fetch_array() 函式則可以使用欄位序號或欄位名稱取得欄位內容。 mysql_fetch_array(resource result [, int result_type]) • 參數result:這是資源識別字。 • 參數result_type:用來指定取得欄位內容的方式,參數值有MYSQL_NUM、MYSQL_ASSOC、MYSQL_BOTH。
12-6-5 使用mysql_fetch_assoc() 函式取得記錄內容 mysql_fetch_ assoc() 函式和mysql_fetch_array() 函式一樣,都是用來讀取記錄內容並存放在陣列,然後將記錄指標移到下一筆,其語法如下,參數result為資源識別字: mysql_fetch_assoc(resource result)
12-6-6 使用mysql_fetch_object() 函式取得記錄內容 • mysql_fetch_object() 函式和mysql_fetch_array() 函式一樣,都是用來讀取記錄內容,然後將記錄指標移到下一筆,倘若讀不到記錄,會傳回FALSE,其語法如下,參數result為資源識別字: mysql_fetch_assoc(resource result) • 由於mysql_fetch_object() 函式的傳回值為object型別,記錄的每個欄位都會變成該物件的屬性,所以在讀取欄位內容時,只能使用欄位名稱。
12-6-7 移動記錄指標 PHP提供了mysql_data_seek() 函式,讓我們可以輕鬆地移動記錄指標,其語法如下: mysql_data_seek(resource result, int row_number) • 參數result:這是資源識別字。 • 參數row_number:這是記錄的序號,0表示第一筆記錄,1表示第二筆記錄,依此類推。 例如。 $row = mysql_fetch_row($result); $seek_result = mysql_data_seek($result, 9); $row = mysql_fetch_row($result);
12-7 其它功能 12-7-1 取得資料庫清單 如果想知道MySQL資料庫伺服器包含哪些資料庫,可以使用mysql_list_dbs() 函式,其語法如下,參數link_identifier為連接識別字: mysql_list_dbs([resource link_identifier]) 這個函式的傳回值為資源識別字,裡面包含一個名稱為Database的欄位,記錄數取決於資料庫的數目 。
\ch12\mysql_list_dbs.php <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE>取得資料庫清單</TITLE> </HEAD> <BODY> <?php $link = mysql_connect("localhost", "root", "mypassword"); $db_list = mysql_list_dbs($link); echo "<P>MySQL資料庫伺服器擁有以下資料庫:</P>"; while ($row = mysql_fetch_object($db_list)) echo $row->Database . "<BR>"; mysql_free_result($db_list); mysql_close($link); ?> </BODY> </HTML>
12-7-2 取得資料表清單 如果想知道某特定資料庫包含哪些資料表,可以使用mysql_list_tables() 函式,其語法如下,參數database_name為資料庫名稱,參數link_identifier為連接識別字: mysql_list_tables(string database_name [, resource link_identifier]) 這個函式的傳回值為資源識別字,裡面包含一個名稱為「Tables_in_資料庫名稱」的欄位,記錄數取決於資料表的數目 。