php5&mysql 程式設計

54
PHP5&MySQL PHP5&MySQL 程程程程 程程程程 12 12 第第 第第 My SQL My SQL 第第第 第第第

Upload: todd-hinton

Post on 02-Jan-2016

57 views

Category:

Documents


0 download

DESCRIPTION

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() - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PHP5&MySQL 程式設計

PHP5&MySQLPHP5&MySQL 程式設計程式設計

第第 1212 章 存取章 存取 My SQLMy SQL 資料庫資料庫

Page 2: PHP5&MySQL 程式設計

12-112-1    PHPPHP 與與 MySQLMySQL 資料庫 資料庫 PHPPHP 提供了數十個函式供我們存取提供了數十個函式供我們存取 MySQLMySQL 資料資料

庫,包括: 庫,包括: mysql_affected_rows()mysql_affected_rows() mysql_client_encoding()mysql_client_encoding() mysql_close()mysql_close() mysql_connect()mysql_connect() mysql_create_db()mysql_create_db() mysql_data_seek()mysql_data_seek() mysql_db_name()mysql_db_name() mysql_db_query()mysql_db_query() mysql_drop_db()mysql_drop_db() mysql_errno()mysql_errno()

Page 3: PHP5&MySQL 程式設計

mysql_error()mysql_error() mysql_fetch_array()mysql_fetch_array() mysql_fetch_assoc()mysql_fetch_assoc() mysql_fetch_field()mysql_fetch_field() mysql_fetch_object()mysql_fetch_object() mysql_fetch_row()mysql_fetch_row() mysql_field_len()mysql_field_len() mysql_field_name()mysql_field_name() mysql_field_seek()mysql_field_seek() mysql_field_table()mysql_field_table() mysql_field_type()mysql_field_type() mysql_free_result()mysql_free_result() mysql_get_client_info()mysql_get_client_info()

Page 4: PHP5&MySQL 程式設計

mysql_get_host_info()mysql_get_host_info() mysql_get_proto_info()mysql_get_proto_info() mysql_get_server_info()mysql_get_server_info() mysql_list_dbs()mysql_list_dbs() mysql_list_fields()mysql_list_fields() mysql_list_tables()mysql_list_tables() mysql_num_fields()mysql_num_fields() mysql_num_rows()mysql_num_rows() mysql_pconnect()mysql_pconnect() mysql_query()mysql_query() mysql_result()mysql_result() mysql_select_db()mysql_select_db()

Page 5: PHP5&MySQL 程式設計

12-212-2  建立與關閉資料連接  建立與關閉資料連接 12-2-112-2-1  建立資料連接 建立資料連接

一、使用一、使用 mysql_connect() mysql_connect() 函式建立資料連接函式建立資料連接

我們可以使用我們可以使用 mysql_connect() mysql_connect() 函式建立資料連接,函式建立資料連接,其語法如下:其語法如下:

mysql_connect([string mysql_connect([string serverserver [, string [, string usernameusername [, string [, string passwordpassword [, bool [, bool new_linknew_link]]]]) ]]]])

Page 6: PHP5&MySQL 程式設計

\ch12\mysql_connect.php\ch12\mysql_connect.php01:<HTML>01:<HTML>02:02: <HEAD> <HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

04: <TITLE>04: <TITLE> 建立資料連接建立資料連接 </TITLE></TITLE>05:05: </HEAD> </HEAD>06:06: <BODY> <BODY>07:07: <?php <?php08:08: $link = $link = mysql_connect("localhost", "root", "mypassword")mysql_connect("localhost", "root", "mypassword");;09:09: if (!$link) if (!$link)10:10: { {11:11: die(" die(" 無法建立連接無法建立連接 ");");12:12: } }13:13: echo " echo " 成功建立連接成功建立連接 ";";14:14: ?> ?> 15:15: </BODY> </BODY>16:</HTML> 16:</HTML>

Page 7: PHP5&MySQL 程式設計

二、使用二、使用 mysql_pconnect() mysql_pconnect() 函式建立永久資料連接函式建立永久資料連接

除了除了 mysql_connect() mysql_connect() 函式之外,您也可以選擇使函式之外,您也可以選擇使用用 mysql_pconnect() mysql_pconnect() 函式建立永久資料連接,其函式建立永久資料連接,其語法如下:語法如下:

mysql_pconnect([string mysql_pconnect([string serverserver [, string [, string usernameusername [, st [, string ring passwordpassword]]]) ]]])

Page 8: PHP5&MySQL 程式設計

\ch12\mysql_pconnect.php\ch12\mysql_pconnect.php01:<HTML>01:<HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

04:04: <TITLE><TITLE> 建立資料連接建立資料連接 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php<?php08:08: $link = $link = mysql_pconnect("localhost", "root", "mypassword")mysql_pconnect("localhost", "root", "mypassword");; 09:09: if (!$link)if (!$link)10:10: {{11:11: die("die(" 無法建立連接無法建立連接 ");");12:12: }}13:13: echo "echo " 成功建立連接成功建立連接 ";";14:14: ?> ?> 15:15: </BODY></BODY>16:</HTML> 16:</HTML>

Page 9: PHP5&MySQL 程式設計

12-2-212-2-2  關閉資料連接  關閉資料連接 mysql_close([resource mysql_close([resource link_identifierlink_identifier]) ])

\ch12\mysql_close.php\ch12\mysql_close.php01:<HTML>01:<HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big

5">5">04:04: <TITLE><TITLE> 建立資料連接建立資料連接 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php<?php08:08: $link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");

09:09: if (!$link) if (!$link) 10:10: {{11:11: die("die(" 無法建立連接無法建立連接 ");");12:12: }}13:13: echo "echo " 成功建立連接成功建立連接 ";";14:14: mysql_close($link)mysql_close($link);;15:15: ?> ?> 16:16: </BODY></BODY>17:</HTML> 17:</HTML>

Page 10: PHP5&MySQL 程式設計

12-312-3  操作 操作 MySQLMySQL 資料庫伺服資料庫伺服器 器

12-3-112-3-1  取得預設字集名稱  取得預設字集名稱 mysql_client_encoding([resource mysql_client_encoding([resource link_identifierlink_identifier]) ]) \ch12\mysql_client_encoding.php\ch12\mysql_client_encoding.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">5"><TITLE><TITLE> 取得資料連接所使用的預設字集名稱取得資料連接所使用的預設字集名稱 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");$charset = $charset = mysql_client_encoding()mysql_client_encoding();;echo "echo " 最後開啟之資料連接所使用的字集名稱: 最後開啟之資料連接所使用的字集名稱: $charset";$charset";mysql_close($link);mysql_close($link);?> ?>

</BODY></BODY></HTML> </HTML>

Page 11: PHP5&MySQL 程式設計

12-3-212-3-2  取得 取得 MySQLMySQL 用戶端函式庫的版本資訊 用戶端函式庫的版本資訊 mysql_get_client_info()mysql_get_client_info()

\ch12\mysql_get_client_info.php\ch12\mysql_get_client_info.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

<TITLE><TITLE> 取得資料連接所使用的預設字集名稱取得資料連接所使用的預設字集名稱 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?phpecho "MySQL echo "MySQL 用戶端程式庫的版本: 用戶端程式庫的版本: " . " . mysql_get_client_inmysql_get_client_in

fo()fo();;?>?>

</BODY></BODY></HTML> </HTML>

Page 12: PHP5&MySQL 程式設計

12-3-312-3-3  取得 取得 MySQLMySQL 主機的相關資訊主機的相關資訊mysql_get_host_info([resource mysql_get_host_info([resource link_identifierlink_identifier])]) \ch12\mysql_get_host_info.php\ch12\mysql_get_host_info.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得取得 MySQLMySQL 主機的資訊主機的資訊 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");echo "\$linkecho "\$link 連線主機為: 連線主機為: " . " . mysql_get_host_info($link)mysql_get_host_info($link);;mysql_close($link);mysql_close($link);

?> ?> </BODY></BODY>

</HTML> </HTML>

Page 13: PHP5&MySQL 程式設計

12-3-412-3-4  取得 取得 MySQLMySQL 資料庫協定的版本資訊資料庫協定的版本資訊mysql_get_proto_info([resource mysql_get_proto_info([resource link_identifierlink_identifier])])

\ch12\mysql_get_proto_info.php\ch12\mysql_get_proto_info.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得取得 MySQLMySQL 資料庫協定的版本資訊資料庫協定的版本資訊 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");echo "\$link echo "\$link 資源變數的協定版本為: 資源變數的協定版本為: " . " . mysql_get_proto_info($linmysql_get_proto_info($lin

k)k);;mysql_close($link);mysql_close($link);?> ?>

</BODY></BODY></HTML> </HTML>

Page 14: PHP5&MySQL 程式設計

12-3-512-3-5  取得 取得 MySQLMySQL 資料庫伺服器的版本資訊資料庫伺服器的版本資訊mysql_get_server_info([resource mysql_get_server_info([resource link_identifierlink_identifier])])

\ch12\mysql_get_server_info.php\ch12\mysql_get_server_info.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得取得 MySQLMySQL 資料庫的版本資訊資料庫的版本資訊 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");echo "\$link echo "\$link 連線主機的資料庫版本為: 連線主機的資料庫版本為: " . " . mysql_get_server_info($mysql_get_server_info($

link)link);;mysql_close($link);mysql_close($link);?> ?>

</BODY></BODY></HTML> </HTML>

Page 15: PHP5&MySQL 程式設計

12-3-612-3-6  建立資料庫 建立資料庫mysql_create_db(string mysql_create_db(string database_namedatabase_name [, resource [, resource link_identifierlink_identifier])])

\ch12\mysql_create_db.php\ch12\mysql_create_db.php01:01: <HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">04:04: <TITLE><TITLE> 建立資料庫建立資料庫 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php<?php08:08: $link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");09:09: if (!$link)if (!$link)10:10: {{11: 11: die("die(" 建立資料連接失敗建立資料連接失敗 ");");12:12: }}13:13:14:14: if (if (mysql_create_db("test_base")mysql_create_db("test_base")))15:15: {{16: 16: echo "echo " 成功建立指定之資料庫成功建立指定之資料庫 ";";17:17: }}18:18: elseelse19:19: {{20: 20: echo "echo " 無法建立指定之資料庫無法建立指定之資料庫 ";";21:21: }}22:22:23:23: mysql_close($link);mysql_close($link); 24:24: ?>?>25:25: </BODY></BODY>26:26: </HTML> </HTML>

Page 16: PHP5&MySQL 程式設計

12-3-712-3-7  刪除資料庫 刪除資料庫mysql_drop_db(string mysql_drop_db(string database_namedatabase_name [, resource [, resource link_identifierlink_identifier])])

\ch12\mysql_drop_db.php\ch12\mysql_drop_db.php01:01: <HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">04:04: <TITLE><TITLE> 刪除資料庫刪除資料庫 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php<?php08:08: $link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");09:09: if (!$link)if (!$link)10:10: {{11: 11: die("die(" 建立資料連接失敗建立資料連接失敗 ");");12:12: }}13:13:14:14: if (if (mysql_drop_db("test_database")mysql_drop_db("test_database")))15:15: {{16: 16: echo "echo " 成功刪除指定之資料庫成功刪除指定之資料庫 ";";17:17: } } 18:18: elseelse19:19: {{20: 20: echo "echo " 無法刪除指定之資料庫無法刪除指定之資料庫 ";";21:21: }}22:22:23:23: mysql_close($link);mysql_close($link); 24:24: ?> ?> 25:25: </BODY></BODY>26:26: </HTML> </HTML>

Page 17: PHP5&MySQL 程式設計

12-3-812-3-8  取得操作 取得操作 MySQLMySQL 資料庫伺服器的錯誤訊息 資料庫伺服器的錯誤訊息 mysql_errno([resourcemysql_errno([resource link_identifier link_identifier])])mysql_error([resource mysql_error([resource link_identifierlink_identifier])])

\ch12\mysql_error.php\ch12\mysql_error.php01:01: <HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big

5">5">04:04: <TITLE><TITLE> 顯示錯誤代碼及訊息顯示錯誤代碼及訊息 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php <?php08:08: $link = @mysql_connect("192.168.0.100", "root", "mypassword"); $link = @mysql_connect("192.168.0.100", "root", "mypassword");09:09: if (!$link) if (!$link)10:10: { {11:11: die(" die(" 無法建立連接無法建立連接 <BR><BR>" .<BR><BR>" . mysql_errno() mysql_errno() . " " . . " " . mysql_error()mysql_error()););12:12: } }13:13: echo " echo " 成功建立連接成功建立連接 ";";14:14: mysql_close($link); mysql_close($link);14:14: ?> ?> 15:15: </BODY></BODY>16:16: </HTML> </HTML>

Page 18: PHP5&MySQL 程式設計
Page 19: PHP5&MySQL 程式設計

12-412-4  執行 執行 SQLSQL 命令 命令 12-4-112-4-1  開啟資料庫 開啟資料庫mysql_select_db( string mysql_select_db( string database_namedatabase_name [, resource [, resource link_idelink_ide

ntifierntifier])])

ch12\mysql_select_db.php (ch12\mysql_select_db.php ( 下頁續下頁續 ))01:01: <HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

04:04: <TITLE> <TITLE> 開啟資料庫開啟資料庫 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php <?php08:08: $link = mysql_connect("localhost", "root", "mypassword"); $link = mysql_connect("localhost", "root", "mypassword");

09:09: if (!$link) if (!$link)10: 10: { {

Page 20: PHP5&MySQL 程式設計

\ch12\mysql_select_db.php (\ch12\mysql_select_db.php ( 接上頁接上頁 ))11:11: die(" die(" 無法建立連接無法建立連接 <BR><BR>" . mysql_error());<BR><BR>" . mysql_error());12:12: }}13:13:14:14: $db_selected = $db_selected = mysql_select_db("students", $link)mysql_select_db("students", $link);;15:15: if (!$db_selected)if (!$db_selected)16:16: {{17: 17: die(" die(" 無法開啟無法開啟 studentsstudents 資料庫資料庫 <BR>" . mysql_error($<BR>" . mysql_error($

link));link));18:18: }}19:19:20:20: mysql_close($link);mysql_close($link);21:21: ?>?>22:22: </BODY></BODY>23:</HTML> 23:</HTML>

Page 21: PHP5&MySQL 程式設計

12-4-212-4-2  執行 執行 SQLSQL 命令命令

一、使用一、使用 mysql_query() mysql_query() 函式執行函式執行 SQLSQL 命令命令mysql_query(string mysql_query(string queryquery [, resource [, resource link_identifierlink_identifier])])

\ch12\mysql_query.php (\ch12\mysql_query.php ( 下頁續下頁續 ))01:01:<HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

04:04: <TITLE> <TITLE> 執行執行 SELECTSELECT 陳述式陳述式 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php<?php08:08: $link = mysql_connect("localhost", "root", "mypasswor $link = mysql_connect("localhost", "root", "mypasswor

d");d");

Page 22: PHP5&MySQL 程式設計

\ch12\mysql_query.php (\ch12\mysql_query.php ( 接上頁接上頁 ) ) 09:09: if (!$link) if (!$link) 10:10: {{11:11: die(" die(" 無法建立連接無法建立連接 <BR><BR>" . mysql_error());<BR><BR>" . mysql_error());12:12: }}13:13: $db_selected = mysql_select_db("product", $link);$db_selected = mysql_select_db("product", $link);14:14: if (!$db_selected)if (!$db_selected)15:15: {{16: 16: die (" die (" 無法開啟無法開啟 prodcutprodcut 資料庫資料庫 <BR>" . mysql_error($link));<BR>" . mysql_error($link));17:17: }}18:18: $sql = "SELECT * FROM price WHERE category = '$sql = "SELECT * FROM price WHERE category = ' 主機主機

板板 '";'";19:19: $result = $result = mysql_query($sql, $link)mysql_query($sql, $link);;20:20: mysql_close($link);mysql_close($link);21:21: ?> ?>22:22: </BODY></BODY>23:23: </HTML> </HTML>

Page 23: PHP5&MySQL 程式設計

二、使用二、使用 mysql_db_query() mysql_db_query() 函式執行函式執行 SQLSQL 命令命令mysql_db_query(string mysql_db_query(string database_namedatabase_name, string , string queryquery [, resource [, resource link_identifierlink_identifier])])

\ch12\mysql_db_query.php\ch12\mysql_db_query.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 執行執行 SELECTSELECT 陳述式陳述式 </TITLE></TITLE>

</HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");if (!$link)if (!$link){{

die("die(" 無法建立連接無法建立連接 <BR><BR>" . mysql_error());<BR><BR>" . mysql_error());}}

$sql = "SELECT * FROM PRICE WHERE category = '$sql = "SELECT * FROM PRICE WHERE category = ' 主機板主機板 '";'";$result = $result = mysql_db_query("prodcut", $sql, $link)mysql_db_query("prodcut", $sql, $link);;mysql_close($link);mysql_close($link);

?> ?> </BODY></BODY>

</HTML> </HTML>

Page 24: PHP5&MySQL 程式設計

12-4-312-4-3  取得執行 取得執行 SQLSQL 命令被影響的記錄數或欄位數命令被影響的記錄數或欄位數

PHPPHP 提供了下列三個函式,讓我們可以得知在執行提供了下列三個函式,讓我們可以得知在執行 SQLSQL命令後,有多少筆記錄或多少個欄位受到影響:命令後,有多少筆記錄或多少個欄位受到影響:

mysql_num_rows() mysql_num_rows() 函式:適用於執行函式:適用於執行 SELECTSELECT 陳述式,陳述式,可以傳回被篩選出來的記錄數,其語法如下,參數可以傳回被篩選出來的記錄數,其語法如下,參數 resultresult為資源識別字 為資源識別字 (resource identifier)(resource identifier) ::mysql_num_rows(resource mysql_num_rows(resource resultresult))

mysql_num_fields() mysql_num_fields() 函式:適用於執行函式:適用於執行 SELECTSELECT 陳述式,陳述式,可以傳回被篩選出來的欄位數,其語法如下,參數可以傳回被篩選出來的欄位數,其語法如下,參數 resultresult為資源識別字 為資源識別字 (resource identifier)(resource identifier) ::mysql_num_fields(resource mysql_num_fields(resource resultresult))

mysql_affected_rows() mysql_affected_rows() 函式:適用於執行函式:適用於執行 INSERTINSERT 、、 UPDUPDATEATE 、、 DELETEDELETE 陳述式,可以傳回有多少筆記錄受到該陳述式,可以傳回有多少筆記錄受到該陳述式的影響,其語法如下,參數陳述式的影響,其語法如下,參數 link_identifierlink_identifier 為連接識為連接識別字 別字 (link identifier)(link identifier) ::mysql_affected_rows([resource mysql_affected_rows([resource link_identifierlink_identifier]) ])

Page 25: PHP5&MySQL 程式設計

下面的程式碼會執行下面的程式碼會執行 SELECTSELECT 陳述式,然後顯示篩選出多少筆記錄及欄位數。 陳述式,然後顯示篩選出多少筆記錄及欄位數。

\ch12\mysql_num_rows.php (\ch12\mysql_num_rows.php ( 下頁續下頁續 ))<HTML><HTML>

<HEAD><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得執行取得執行 SELECTSELECT 陳述式時,被影響的記錄及欄位數目。陳述式時,被影響的記錄及欄位數目。 </TITLE</TITLE>></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword"); $link = mysql_connect("localhost", "root", "mypassword");

if (!$link) if (!$link) {{

die("die(" 無法建立連接無法建立連接 <BR><BR>" . mysql_error());<BR><BR>" . mysql_error());}}$db_selected = mysql_select_db("product", $link);$db_selected = mysql_select_db("product", $link);if (!$db_selected)if (!$db_selected){{

die ("die (" 無法開啟無法開啟 prodcutprodcut 資料庫資料庫 <BR>" . mysql_error($link));<BR>" . mysql_error($link));} }

Page 26: PHP5&MySQL 程式設計

\ch12\mysql_num_rows.php (\ch12\mysql_num_rows.php ( 接上頁接上頁 ))$sql = "SELECT * FROM price WHERE category = '$sql = "SELECT * FROM price WHERE category = ' 主機板主機板 '";'";

$result = mysql_query($sql, $link);$result = mysql_query($sql, $link);echo "category = echo "category = 「主機板」 的記錄有 「主機板」 的記錄有 " . " . mysql_num_rows($result)mysql_num_rows($result) . " . "

筆筆 ";";echo "echo " ,包含 ,包含 " . " . mysql_num_fields($result)mysql_num_fields($result) . " . " 個欄位。個欄位。 ";";mysql_close($link);mysql_close($link);?> ?>

</BODY></BODY></HTML> </HTML>

Page 27: PHP5&MySQL 程式設計

下面的程式碼會執行下面的程式碼會執行 INSERTINSERT 陳述式新增一筆記錄,然後顯示受影響的記錄數。陳述式新增一筆記錄,然後顯示受影響的記錄數。

\ch12\mysql_affected_rows_01.php (\ch12\mysql_affected_rows_01.php ( 下頁續下頁續 ))<HTML><HTML>

<HEAD><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"> <TITLE><TITLE> 取得執行取得執行 INSERTINSERT 陳述式時,被影響的記錄數目。陳述式時,被影響的記錄數目。 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");if (!$link)if (!$link){{

die("die(" 無法建立連接無法建立連接 <BR><BR>" . mysql_error());<BR><BR>" . mysql_error());} }

Page 28: PHP5&MySQL 程式設計

\ch12\mysql_affected_rows_01.php (\ch12\mysql_affected_rows_01.php ( 接上頁接上頁 ) ) $db_selected = mysql_select_db("product", $link); $db_selected = mysql_select_db("product", $link); if (!$db_selected)if (!$db_selected){{

die ("die (" 無法開啟無法開啟 prodcutprodcut 資料庫資料庫 <BR>" . mysql_error($link));<BR>" . mysql_error($link));}}$sql = "INSERT INTO price(no, category, brand, specification, price, date, url) $sql = "INSERT INTO price(no, category, brand, specification, price, date, url)

VALUES('340','CPU','AMD','AMD AthlonXP VALUES('340','CPU','AMD','AMD AthlonXP 2000+','1800','2004/7/25', 'www.amd.com')"; 2000+','1800','2004/7/25', 'www.amd.com')";

$result = mysql_query($sql, $link); $result = mysql_query($sql, $link);

echo "echo " 執行執行 INSERTINSERT 陳述式時,共有 陳述式時,共有 " ." .mysql_affected_rows($link)mysql_affected_rows($link). " . " 筆記錄受影響筆記錄受影響 ";";mysql_close($link);mysql_close($link);?> ?>

</BODY></BODY></HTML> </HTML>

Page 29: PHP5&MySQL 程式設計

下面的程式碼會執行下面的程式碼會執行 UPDATEUPDATE 陳述式更新記錄,然後顯示被更新的記錄數。陳述式更新記錄,然後顯示被更新的記錄數。

\ch12\mysql_affected_rows_02.php (\ch12\mysql_affected_rows_02.php ( 下頁續下頁續 ))<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得執行取得執行 UPDATEUPDATE 陳述式時,被影響的記錄數目。陳述式時,被影響的記錄數目。 </TITLE></TITLE>

</HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");

if (!$link)if (!$link){{

die("die(" 無法建立連接無法建立連接 <BR><BR>" . mysql_error());<BR><BR>" . mysql_error());}}$db_selected = mysql_select_db("product", $link); $db_selected = mysql_select_db("product", $link); if (!$db_selected)if (!$db_selected){{

die ("die (" 無法開啟無法開啟 prodcutprodcut 資料庫資料庫 <BR>" . mysql_error($link));<BR>" . mysql_error($link));} }

Page 30: PHP5&MySQL 程式設計

\ch12\mysql_affected_rows_02.php (\ch12\mysql_affected_rows_02.php ( 接上頁接上頁 ))$sql = "UPDATE price SET url = 'www.westerndigital.com' $sql = "UPDATE price SET url = 'www.westerndigital.com'

WHERE url = 'www.wdc.com'"; WHERE url = 'www.wdc.com'";$result = mysql_query($sql, $link); $result = mysql_query($sql, $link); echo "echo " 執行執行 UPDATEUPDATE 陳述式時,共有 陳述式時,共有 ".".

mysql_affected_rows($link)mysql_affected_rows($link)." ." 筆記錄受影響筆記錄受影響 ";";mysql_close($link); mysql_close($link); ?> ?>

</BODY></BODY></HTML> </HTML>

Page 31: PHP5&MySQL 程式設計

12-512-5  取得欄位資訊  取得欄位資訊 12-5-112-5-1  使用 使用 mysql_fetch_field() mysql_fetch_field() 函式取得欄位資訊函式取得欄位資訊mysql_fetch_field(resource mysql_fetch_field(resource resultresult [, int [, int field_offsetfield_offset])])

mysql_fetch_field() mysql_fetch_field() 函式的傳回值為函式的傳回值為 objectobject 型別,包含下列屬性: 型別,包含下列屬性: namename tabletable max_lengthmax_length not_nullnot_null primary_keyprimary_key unique_keyunique_key multiple_keymultiple_key numericnumeric blobblob typetype unsignedunsigned zerofillzerofill

Page 32: PHP5&MySQL 程式設計

舉例來說,假設要取得第舉例來說,假設要取得第 22 個欄位資訊,可以寫個欄位資訊,可以寫成如下:成如下:$meta = mysql_fetch_field($result, 1);$meta = mysql_fetch_field($result, 1);

假設要取得第假設要取得第 22 個欄位資訊並顯示其欄位名稱及個欄位資訊並顯示其欄位名稱及資料型態,可以寫成如下:資料型態,可以寫成如下:$meta = mysql_fetch_field($result, 1);$meta = mysql_fetch_field($result, 1);

echo "echo " 欄位名稱:欄位名稱: " . $meta->name;" . $meta->name;

echo "echo " 資料型態:資料型態: " . $meta->type; " . $meta->type;

Page 33: PHP5&MySQL 程式設計

\ch12\mysql_fetch_field.php (\ch12\mysql_fetch_field.php ( 下頁續下頁續 ))01:01: <HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">

04:04: <TITLE><TITLE> 顯示欄位資訊顯示欄位資訊 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <?php<?php08:08: $link = mysql_connect("localhost", "root", "mypassword"); $link = mysql_connect("localhost", "root", "mypassword");09:09: $db_selected = mysql_select_db("product", $link); $db_selected = mysql_select_db("product", $link);10:10: $sql = "SELECT * FROM PRICE WHERE category = ' $sql = "SELECT * FROM PRICE WHERE category = ' 主機板主機板 '"; '"; 11:11: $result = mysql_query($sql, $link); $result = mysql_query($sql, $link); 12:12: if (!$result) if (!$result)13:13: { {14: 14: die(" die(" 執行命令失敗 執行命令失敗 <BR>" . mysql_error());<BR>" . mysql_error());15:15: } }16:16:17:17: echo "<TABLE WIDTH='400' BORDER='1'><TR ALIGN='CENTER'>";echo "<TABLE WIDTH='400' BORDER='1'><TR ALIGN='CENTER'>";18:18: echo "<TD>echo "<TD> 欄位名稱欄位名稱 </TD><TD></TD><TD> 資料型態資料型態 </TD><TD></TD><TD> 最大長度最大長度 </TD></T</TD></T

R>";R>";

19: 19:

Page 34: PHP5&MySQL 程式設計

\ch12\mysql_fetch_field.php (\ch12\mysql_fetch_field.php ( 接上頁接上頁 ))20:20: $i = 0;$i = 0;21:21: while ($i < mysql_num_fields($result))while ($i < mysql_num_fields($result))22:22: {{23:23: $meta = $meta = mysql_fetch_field($result, $i)mysql_fetch_field($result, $i);;24:24: echo "<TR>";echo "<TR>";25:25: echo "<TD>" . echo "<TD>" . $meta->name$meta->name . "</TD>"; . "</TD>";26:26: echo "<TD>" . echo "<TD>" . $meta->type$meta->type . "</TD>"; . "</TD>";27:27: echo "<TD>" . echo "<TD>" . $meta->max_length$meta->max_length . "</TD>"; . "</TD>";28:28: echo "</TR>";echo "</TR>";29:29: $i++;$i++;30:30: }}31:31: echo "</TABLE>" ;echo "</TABLE>" ;32:32: mysql_close($link);mysql_close($link);33:33: ?> ?> 34:34: </BODY></BODY>35:35: </HTML> </HTML>

Page 35: PHP5&MySQL 程式設計

12-5-212-5-2  使用其它函式取得欄位資 使用其它函式取得欄位資訊訊

PHPPHP 還提供了下列函式,讓我們取得欄位資訊: 還提供了下列函式,讓我們取得欄位資訊: mysql_field_namemysql_field_name mysql_field_typemysql_field_type mysql_field_lenmysql_field_len mysql_field_tablemysql_field_table

這四個函式均有兩個參數:這四個函式均有兩個參數: 參數參數 resultresult :這是資源識別字。:這是資源識別字。 參數參數 field_offsetfield_offset :這是欄位的序號,:這是欄位的序號, 00 表示第一表示第一

個欄位,個欄位, 11 表示第二個欄位,依此類推。 表示第二個欄位,依此類推。

Page 36: PHP5&MySQL 程式設計

\ch12\mysql_field_info.php (\ch12\mysql_field_info.php ( 下頁續下頁續 ))<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 顯示欄位資訊顯示欄位資訊 </TITLE></TITLE>

</HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");$db_selected = mysql_select_db("product", $link);$db_selected = mysql_select_db("product", $link);$sql = "SELECT * FROM PRICE WHERE category = '$sql = "SELECT * FROM PRICE WHERE category = ' 主機板主機板 '";'";

$result = mysql_query($sql, $link);$result = mysql_query($sql, $link);if (!$result) if (!$result) {{

die("die(" 執行命令失敗 執行命令失敗 <BR>" . mysql_error());<BR>" . mysql_error());}}

echo "<TABLE WIDTH='400' BORDER='1'><TR ALIGN='CENTER'>";echo "<TABLE WIDTH='400' BORDER='1'><TR ALIGN='CENTER'>";echo "<TD>echo "<TD> 欄位名稱欄位名稱 </TD><TD></TD><TD> 資料型態資料型態 </TD><TD></TD><TD> 欄位長度欄位長度 </TD></TR</TD></TR

>";>";

Page 37: PHP5&MySQL 程式設計

\ch12\mysql_field_info.php (\ch12\mysql_field_info.php ( 接上頁接上頁 ))$i = 0;$i = 0;while ($i < mysql_num_fields($result))while ($i < mysql_num_fields($result)){{

echo "<TR>";echo "<TR>";echo "<TD>" . echo "<TD>" . mysql_field_name($result, $i)mysql_field_name($result, $i) . "</TD>"; . "</TD>";echo "<TD>" . echo "<TD>" . mysql_field_type($result, $i)mysql_field_type($result, $i) . "</TD>"; . "</TD>";echo "<TD>" . echo "<TD>" . mysql_field_len($result, $i)mysql_field_len($result, $i) . "</TD>"; . "</TD>";echo "</TR>";echo "</TR>";$i++;$i++;

}}echo "</TABLE>" ;echo "</TABLE>" ;mysql_close($link);mysql_close($link);

?> ?> </BODY></BODY>

</HTML> </HTML>

Page 38: PHP5&MySQL 程式設計

12-5-312-5-3  移動欄位指標  移動欄位指標 mysql_field_seek() mysql_field_seek() 函式讓我們可以輕鬆地移動欄位指標,其語法如下:函式讓我們可以輕鬆地移動欄位指標,其語法如下:

mysql_field_seek(resource mysql_field_seek(resource resultresult, int , int field_offsetfield_offset))

參數參數 resultresult :這是資源識別字。:這是資源識別字。 參數參數 field_offsetfield_offset :這是欄位的序號,:這是欄位的序號, 00 表示第一個欄位,表示第一個欄位, 11 表示第二表示第二

個欄位,依此類推。個欄位,依此類推。

例如:例如:$meta = mysql_fetch_field($result, 1);$meta = mysql_fetch_field($result, 1);$seek_result = $seek_result = mysql_field_seek($result, 4)mysql_field_seek($result, 4);;$meta = mysql_fetch_field($result);$meta = mysql_fetch_field($result);

Page 39: PHP5&MySQL 程式設計

12-612-6  取得記錄內容  取得記錄內容 mysql_result() mysql_result() 函式一次可以取得一個欄位內容,其語法如下:函式一次可以取得一個欄位內容,其語法如下:mysql_result(resource mysql_result(resource resultresult, int , int rowrow [, mixed [, mixed fieldfield])]) 參數參數 resultresult 參數參數 rowrow 參數參數 fieldfield

例如:例如:mysql_result($result, 2, 1);mysql_result($result, 2, 1);mysql_result($result, 2, "category");mysql_result($result, 2, "category");

查詢結果所包含的記錄會佔用伺服器的記憶體,雖然在所有程式碼執查詢結果所包含的記錄會佔用伺服器的記憶體,雖然在所有程式碼執行完畢後會自動釋放佔用的記憶體,但我們建議您,可以在適當的時行完畢後會自動釋放佔用的記憶體,但我們建議您,可以在適當的時候使用候使用 mysql_free_result() mysql_free_result() 函式釋放記憶體,語法如下,參數函式釋放記憶體,語法如下,參數 resultresult為資源識別字:為資源識別字:

mysql_free_result(resource mysql_free_result(resource resultresult) )

Page 40: PHP5&MySQL 程式設計

\ch12\mysql_result.php (\ch12\mysql_result.php ( 下頁續下頁續 ))01:01: <HTML><HTML>02:02: <HEAD><HEAD>03:03: <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">04:04: <TITLE><TITLE> 顯示所有記錄顯示所有記錄 </TITLE></TITLE>05:05: </HEAD></HEAD>06:06: <BODY><BODY>07:07: <H1 ALIGN="CENTER"><H1 ALIGN="CENTER"> 零組件報價表零組件報價表 </H1></H1>08:08: <?php<?php09:09: $link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");

10:10: $db_selected = mysql_select_db("product", $link);$db_selected = mysql_select_db("product", $link);11:11: $sql = "SELECT * FROM PRICE WHERE category = '$sql = "SELECT * FROM PRICE WHERE category = ' 主機主機

板板 '";'";12:12: $result = mysql_query($sql, $link);$result = mysql_query($sql, $link);13:13:14:14: echo "<TABLE BORDER='1' ALIGN='CENTER'><TR ALIGN='CENTER'>";echo "<TABLE BORDER='1' ALIGN='CENTER'><TR ALIGN='CENTER'>";

15:15:16:16: for ($i = 0; $i < mysql_num_fields($result); $i++)for ($i = 0; $i < mysql_num_fields($result); $i++)17:17: {{18:18: $meta = mysql_fetch_field($result, $i);$meta = mysql_fetch_field($result, $i);19:19: echo "<TD>" . $meta->name . "</TD>";echo "<TD>" . $meta->name . "</TD>";20:20: }}21:21: echo "</TR>";echo "</TR>";22: 22:

Page 41: PHP5&MySQL 程式設計

\ch12\mysql_result.php (\ch12\mysql_result.php ( 接上頁接上頁 ))23:23: for ($j = 0; $j < mysql_num_rows($result); $j++)for ($j = 0; $j < mysql_num_rows($result); $j++)24:24: {{25:25: echo "<TR>";echo "<TR>";26:26: for ($k = 0; $k < mysql_num_fields($result); $k++)for ($k = 0; $k < mysql_num_fields($result); $k++)27:27: {{28:28: echo "<TD>" . echo "<TD>" . mysql_result($result, $j, $k)mysql_result($result, $j, $k) . "</T . "</T

D>"; D>"; 29:29: }}30:30: echo "</TR>";echo "</TR>";31:31: }}32:32: echo "</TABLE>" ;echo "</TABLE>" ;33:33: mysql_free_result($result);mysql_free_result($result);34:34: mysql_close($link);mysql_close($link);35:35: ?> ?> 36:36: </BODY></BODY>37:37: </HTML> </HTML>

Page 42: PHP5&MySQL 程式設計

12-6-212-6-2  使用 使用 mysql_db_name() mysql_db_name() 函式取得記錄內容函式取得記錄內容mysql_db_name() mysql_db_name() 函式一次可以取得一個欄位內容,語法如下:函式一次可以取得一個欄位內容,語法如下:mysql_db_name(resource mysql_db_name(resource resultresult, int , int rowrow [, mixed [, mixed fieldfield])]) 參數參數 resultresult 參數參數 rowrow 參數參數 fieldfield

例如:例如:mysql_db_name($result, 2, 1);mysql_db_name($result, 2, 1);mysql_db_name($result, 2, "category");mysql_db_name($result, 2, "category");

查詢結果所包含的記錄會佔用伺服器的記憶體,雖然在所有查詢結果所包含的記錄會佔用伺服器的記憶體,雖然在所有程式碼執行完畢後會自動釋放佔用的記憶體,但我們建議您,程式碼執行完畢後會自動釋放佔用的記憶體,但我們建議您,可以在適當的時候使用可以在適當的時候使用 mysql_free_result() mysql_free_result() 函式釋放記憶體,函式釋放記憶體,語法如下,參數語法如下,參數 resultresult 為資源識別字:為資源識別字:mysql_free_result(resource mysql_free_result(resource resultresult) )

Page 43: PHP5&MySQL 程式設計

12-6-312-6-3  使用 使用 mysql_fetch_row() mysql_fetch_row() 函式取得記錄內容函式取得記錄內容

PHPPHP 提供的提供的 mysql_fetch_row() mysql_fetch_row() 函式可以用來讀取一筆記函式可以用來讀取一筆記錄,然後將記錄指標移到下一筆,倘若讀不到記錄,就傳錄,然後將記錄指標移到下一筆,倘若讀不到記錄,就傳回回 FALSEFALSE ,其語法如下:,其語法如下:

mysql_fetch_row(resource mysql_fetch_row(resource resultresult) )

例如:例如:$row1 = mysql_fetch_row($result);$row1 = mysql_fetch_row($result);$row2 = mysql_fetch_row($result);$row2 = mysql_fetch_row($result);$row3 = mysql_fetch_row($result);$row3 = mysql_fetch_row($result);$row4 = mysql_fetch_row($result);$row4 = mysql_fetch_row($result);$row5 = mysql_fetch_row($result);$row5 = mysql_fetch_row($result);

echo $row2[2];echo $row2[2];echo $row3[0]; echo $row3[0];

Page 44: PHP5&MySQL 程式設計

12-6-412-6-4  使用 使用 mysql_fetch_array() mysql_fetch_array() 函式取得記錄內容函式取得記錄內容

mysql_fetch_array() mysql_fetch_array() 函式的用途和函式的用途和 mysql_fetch_row() mysql_fetch_row() 函式函式一樣,都是用來讀取記錄並存放在陣列,然後將記錄指標一樣,都是用來讀取記錄並存放在陣列,然後將記錄指標移到下一筆,倘若讀不到記錄,就傳回移到下一筆,倘若讀不到記錄,就傳回 FALSEFALSE ,不同之處,不同之處在於取得欄位內容時,在於取得欄位內容時, mysql_fetch_row() mysql_fetch_row() 函式是以欄位序函式是以欄位序號取得欄位內容,而號取得欄位內容,而 mysql_fetch_array() mysql_fetch_array() 函式則可以使用函式則可以使用欄位序號或欄位名稱取得欄位內容。欄位序號或欄位名稱取得欄位內容。

mysql_fetch_array(resource mysql_fetch_array(resource resultresult [, int [, int result_typeresult_type])])

參數參數 resultresult :這是資源識別字。:這是資源識別字。 參數參數 result_typeresult_type :用來指定取得欄位內容的方式,參數值:用來指定取得欄位內容的方式,參數值

有有 MYSQL_NUMMYSQL_NUM 、、 MYSQL_ASSOCMYSQL_ASSOC 、、 MYSQL_BOTHMYSQL_BOTH 。 。

Page 45: PHP5&MySQL 程式設計

12-6-512-6-5  使用 使用 mysql_fetch_assoc() mysql_fetch_assoc() 函式取得記錄內函式取得記錄內容容

mysql_fetch_ assoc() mysql_fetch_ assoc() 函式和函式和 mysql_fetch_arrmysql_fetch_array() ay() 函式一樣,都是用來讀取記錄內容並函式一樣,都是用來讀取記錄內容並存放在陣列,然後將記錄指標移到下一筆,存放在陣列,然後將記錄指標移到下一筆,其語法如下,參數其語法如下,參數 resultresult 為資源識別字:為資源識別字:

mysql_fetch_assoc(resource mysql_fetch_assoc(resource resultresult))

Page 46: PHP5&MySQL 程式設計

12-6-612-6-6  使用 使用 mysql_fetch_object() mysql_fetch_object() 函式取得記錄內容函式取得記錄內容

mysql_fetch_object() mysql_fetch_object() 函式和函式和 mysql_fetch_array() mysql_fetch_array() 函式一樣,都是用來讀取記錄內容,然後將記錄函式一樣,都是用來讀取記錄內容,然後將記錄指標移到下一筆,倘若讀不到記錄,會傳回指標移到下一筆,倘若讀不到記錄,會傳回 FALSFALSEE ,其語法如下,參數,其語法如下,參數 resultresult 為資源識別字:為資源識別字:

mysql_fetch_assoc(resource mysql_fetch_assoc(resource resultresult))

由於由於 mysql_fetch_object() mysql_fetch_object() 函式的傳回值為函式的傳回值為 objectobject型別,記錄的每個欄位都會變成該物件的屬性,型別,記錄的每個欄位都會變成該物件的屬性,所以在讀取欄位內容時,只能使用欄位名稱。所以在讀取欄位內容時,只能使用欄位名稱。

Page 47: PHP5&MySQL 程式設計

12-6-712-6-7  移動記錄指標 移動記錄指標PHPPHP 提供了提供了 mysql_data_seek() mysql_data_seek() 函式,讓我們可以輕鬆地函式,讓我們可以輕鬆地移動記錄指標,其語法如下:移動記錄指標,其語法如下:mysql_data_seek(resource mysql_data_seek(resource resultresult, int , int row_numberrow_number))

參數參數 resultresult :這是資源識別字。:這是資源識別字。 參數參數 row_numberrow_number :這是記錄的序號,:這是記錄的序號, 00 表示第一筆記錄,表示第一筆記錄,

11 表示第二筆記錄,依此類推。表示第二筆記錄,依此類推。

例如。例如。$row = mysql_fetch_row($result);$row = mysql_fetch_row($result);$seek_result = $seek_result = mysql_data_seek($result, 9)mysql_data_seek($result, 9);;$row = mysql_fetch_row($result); $row = mysql_fetch_row($result);

Page 48: PHP5&MySQL 程式設計

12-712-7  其它功能 其它功能12-7-112-7-1  取得資料庫清單 取得資料庫清單

如果想知道如果想知道 MySQLMySQL 資料庫伺服器包含哪些資資料庫伺服器包含哪些資料庫,可以使用料庫,可以使用 mysql_list_dbs() mysql_list_dbs() 函式,其語法函式,其語法如下,參數如下,參數 link_identifierlink_identifier 為連接識別字:為連接識別字:

mysql_list_dbs([resource mysql_list_dbs([resource link_identifierlink_identifier])])

這個函式的傳回值為資源識別字,裡面包含一這個函式的傳回值為資源識別字,裡面包含一個名稱為個名稱為 DatabaseDatabase 的欄位,記錄數取決於資料的欄位,記錄數取決於資料庫的數目 。庫的數目 。

Page 49: PHP5&MySQL 程式設計

\ch12\mysql_list_dbs.php\ch12\mysql_list_dbs.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得資料庫清單取得資料庫清單 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");$db_list = $db_list = mysql_list_dbs($link)mysql_list_dbs($link);;echo "<P>MySQLecho "<P>MySQL 資料庫伺服器擁有以下資料庫:資料庫伺服器擁有以下資料庫: </P>";</P>";while ($row = mysql_fetch_object($db_list))while ($row = mysql_fetch_object($db_list))

echo $row->Database . "<BR>";echo $row->Database . "<BR>";mysql_free_result($db_list);mysql_free_result($db_list);mysql_close($link);mysql_close($link);

?> ?> </BODY></BODY>

</HTML> </HTML>

Page 50: PHP5&MySQL 程式設計

12-7-212-7-2  取得資料表清單 取得資料表清單如果想知道某特定資料庫包含哪些資料表,可以如果想知道某特定資料庫包含哪些資料表,可以使用使用 mysql_list_tables() mysql_list_tables() 函式,其語法如下,參數函式,其語法如下,參數database_namedatabase_name 為資料庫名稱,參數為資料庫名稱,參數 link_identifierlink_identifier為連接識別字:為連接識別字:

mysql_list_tables(string mysql_list_tables(string database_namedatabase_name [, resource [, resource link_identifierlink_identifier])])

這個函式的傳回值為資源識別字,裡面包含一個這個函式的傳回值為資源識別字,裡面包含一個名稱為「名稱為「 Tables_in_Tables_in_ 資料庫名稱資料庫名稱」的欄位,記錄」的欄位,記錄數取決於資料表的數目 。數取決於資料表的數目 。

Page 51: PHP5&MySQL 程式設計

\ch12\mysql_list_tables.php\ch12\mysql_list_tables.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset

=big5">=big5"><TITLE><TITLE> 取得資料表清單取得資料表清單 </TITLE></TITLE>

</HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");$table_list = $table_list = mysql_list_tables("product", $link)mysql_list_tables("product", $link);;echo "<P>productecho "<P>product 資料庫包含以下資料表:資料庫包含以下資料表: </P>";</P>";while ($row = mysql_fetch_object($table_list))while ($row = mysql_fetch_object($table_list))

echo $row->Tables_in_ product . "<BR>";echo $row->Tables_in_ product . "<BR>";mysql_free_result($table_list);mysql_free_result($table_list);mysql_close($link);mysql_close($link);

?> ?> </BODY></BODY>

</HTML> </HTML>

Page 52: PHP5&MySQL 程式設計

12-7-312-7-3  取得欄位清單 取得欄位清單如果想知道某特定資料表包含哪些欄位,可以使如果想知道某特定資料表包含哪些欄位,可以使用用 mysql_list_fields() mysql_list_fields() 函式,其語法如下,參數函式,其語法如下,參數 ddatabase_nameatabase_name 為資料庫名稱,參數為資料庫名稱,參數 table_nametable_name為資料表名稱,參數為資料表名稱,參數 link_identifierlink_identifier 為連接識別字:為連接識別字:

mysql_list_fields(string mysql_list_fields(string database_namedatabase_name, string , string table_nametable_name [, [, resource resource link_identifierlink_identifier])])

這個函式的傳回值為資源識別字,裡面包含所有這個函式的傳回值為資源識別字,裡面包含所有欄位,欄位, 00 筆記錄 筆記錄

Page 53: PHP5&MySQL 程式設計

ch12\mysql_list_fields.phpch12\mysql_list_fields.php<HTML><HTML>

<HEAD><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5"><TITLE><TITLE> 取得欄位清單取得欄位清單 </TITLE></TITLE></HEAD></HEAD><BODY><BODY>

<?php<?php$link = mysql_connect("localhost", "root", "mypassword");$link = mysql_connect("localhost", "root", "mypassword");$field_list = $field_list = mysql_list_fields("product", "price", $link)mysql_list_fields("product", "price", $link);;echo "<P>priceecho "<P>price 資料表包含以下欄位:資料表包含以下欄位: </P>";</P>";$total_fields = mysql_num_fields($field_list);$total_fields = mysql_num_fields($field_list);for ($i = 0; $i < $total_fields; $i++)for ($i = 0; $i < $total_fields; $i++)

echo mysql_field_name($field_list, $i) . "<BR>";echo mysql_field_name($field_list, $i) . "<BR>";mysql_free_result($field_list);mysql_free_result($field_list);mysql_close($link);mysql_close($link);

?> ?> </BODY></BODY>

</HTML> </HTML>

Page 54: PHP5&MySQL 程式設計

12-812-8  分頁瀏覽  分頁瀏覽