http://www.db.cs.ntou.edu.tw/yahui/ntpu_db/appserv10.pdf
http://pcclass.cc.nthu.edu.tw/nuke/dbms.php?filename=class2-5.html
http://tw.myblog.yahoo.com/tonywangblog2011-tonywangblog2011/article?mid=320&prev=-1&next=315
http://rfid.ctu.edu.tw/rueychi/3_2_2_php.html
基礎級課程 (資料以www.php.net官方網站內容為主,部份另自網路上取得,並盡可能註明來源出處,如有遺漏,敬請來信指正,謝謝!) |
編號
|
主題
|
內容大網
|
作業
|
備註
|
9
|
Mysql資料庫 |
- 關聯性資料庫
- sql結構化查詢語言
- phpMyAdmin安裝及操作
- php 與 mysql的操作原理及函式使用
|
|
|
|
關聯性資料庫 |
|
php 與 mysql的操作原理及函式使用
|
|
|
|
在PHP與Mysql的互動過程中,SQL語法的查詢、新增、修改及刪除的作用僅是結果的呈現,在PHP與MySQL兩個系統的操作過程,大致可分為下列簡單的幾個步驟:
|
|
|
|
一、連結資料庫
|
|
- 建立連線:
$link = mysql_connect("Mysql主機名稱", "帳號", "密碼") or die("無法連接資料庫: " . mysql_error( ));
- 選擇資料庫:
mysql_select_db("資料庫名稱") or die("無法選擇資料庫");
|
|
|
|
二、執行SQL語法
|
|
- 建立SQL語法
(查詢) $query = "SELECT * FROM my_table"; (新增) $query = "INSERT INTO my_table (c1,c2,...) VALUES ( value1,value2, ...)"; (修改) $query = "UPDATE my_table SET c1='abc' WHERE id='100' "; (刪除) $query = "DELETE FROM my_table WHERE id='100' ";
- 送出SQL語法到資料庫系統
$result = mysql_query($query) or die("無法送出" . mysql_error( ));
|
|
|
|
三、取得執行SQL語法後的結果 (指查詢部份)
|
|
while ( $row = mysql_fetch_array($result ) ) {
echo $row[0]."<BR>";
} |
|
|
|
四、釋放與Mysql的連線
|
|
mysql_free_result($result);
|
|
|
|
以範例來說明:
|
|
資料庫狀況描述:
程式設計範例(一):
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
|
<?php //一、連結資料庫
//建立連線: $link = mysql_pconnect("localhost", "user", "tceb22210500"); //選擇資料庫: mysql_select_db("test123") or die("無法選擇資料庫");
//二、執行SQL語法 // 建立SQL語法 $query = "SELECT * FROM abc"; //送出SQL語法到資料庫系統 $result = mysql_query($query) or die("無法送出" . mysql_error( ));
// 三、取得執行SQL語法後的結果 (指查詢部份) while ( $row = mysql_fetch_array($result) ) { echo $row['sch_id']."<BR>"; }
//四、釋放與Mysql的連線 mysql_free_result($result); ?>
|
|
第16行:用$row[0]及$row['欄位名稱']內容相同,唯建議採用後者,比較容易日後維護。其取得的資料用容舉例如下:
array(6) { [0]=> string(5) "00001" ["sch_id"]=> string(5) "00001" [1]=> string(6) "王大雄" ["name"]=> string(6) "王大雄" [2]=> string(2) "10" ["score"]=> string(2) "10" }
|
|
|
|
程式設計範例(二):
01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
|
<?php //建立連線: $link = mysql_pconnect("localhost", "user", "tceb22210500"); //選擇資料庫: mysql_select_db("test123") or die("無法選擇資料庫"); //二、執行SQL語法 // 建立SQL語法 $query = "INSERT INTO abc (sch_id, name, score) VALUES ('00004','宜靜', '100')"; //送出SQL語法到資料庫系統 mysql_query($query) or die("無法送出" . mysql_error( )); ?>
|
|
第08行:新增一筆資料。
|
第10行:只是送出SQL語法,無需傳回範例(一)的$result,也無需mysql_free_result($result);釋放連線 |
|
|
|
|
程式設計範例(三):
mysql.php
01:
02:
03:
04:
05:
06:
|
<?php //建立連線: $link = mysql_pconnect("localhost", "user", "tceb22210500"); //選擇資料庫: mysql_select_db("test123") or die("無法選擇資料庫"); ?>
|
|
將重複的「程式部份」另存一個PHP檔案,尤其是屬於程式中常「共用」的參數盡量另存一個檔案來使用。 |
01:
02:
03:
04:
05:
06:
07:
08:
|
<?php include ("mysql.php"); //二、執行SQL語法 // 建立SQL語法 $query = "UPDATE abc SET score='99' WHERE sch_id='00001'"; //送出SQL語法到資料庫系統 mysql_query($query) or die("無法送出" . mysql_error( )); ?>
|
|
第02行:嵌入mysql.php。
|
第05行:修改一筆資料 |
|
|
|
|
|
|
Mysql相關函數
函數名稱
|
用途說明
|
mysql_affected_rows |
得到 MySQL 最後操作影響的列數目。 |
mysql_change_user |
Change logged in user of the active connection |
mysql_client_encoding |
Returns the name of the character set |
mysql_close |
關閉 MySQL 伺服器連線。 |
mysql_connect |
開啟MySQL 伺服器連線。 |
mysql_create_db |
建立一個 MySQL 新資料庫。 |
mysql_data_seek |
移動內部傳回指標。 |
mysql_db_name |
取得結果資料。 |
mysql_db_query |
送查詢字串 (query) 到 MySQL 資料庫。 |
mysql_drop_db |
移除資料庫。 |
mysql_errno |
傳回錯誤訊息代碼。 |
mysql_error |
傳回錯誤訊息。 |
mysql_escape_string |
Escapes a string for use in a mysql_query. |
mysql_fetch_array |
傳回陣列資料。 |
mysql_fetch_assoc |
Fetch a result row as an associative array |
mysql_fetch_field |
取得欄位資訊。 |
mysql_fetch_lengths |
傳回單列各欄資料最大長度。 |
mysql_fetch_object |
傳回物件資料。 |
mysql_fetch_row |
傳回單列的各欄位。 |
mysql_field_flags |
獲得目前欄位的旗標。 |
mysql_field_len |
獲得目前欄位的長度。 |
mysql_field_name |
傳回指定欄位的名稱。 |
mysql_field_seek |
設定指標到傳回值的某欄位。 |
mysql_field_table |
獲得目前欄位元的資料表 (table) 名稱。 |
mysql_field_type |
獲得目前欄位的型態。 |
mysql_free_result |
釋放傳回佔用記憶體。 |
mysql_get_client_info |
取得 MySQL客戶端的資訊 |
mysql_get_host_info |
取得 MySQL客戶端的主機名稱 |
mysql_get_proto_info |
取得 MySQL客戶端Get MySQL protocol info |
mysql_get_server_info |
Get MySQL server info |
mysql_info |
Get information about the most recent query |
mysql_insert_id |
傳回最後一次使用 INSERT 指令的 ID。 |
mysql_list_dbs |
列出 MySQL 伺服器可用的資料庫 (database)。 |
mysql_list_fields |
列出指定資料表的欄位元 (field)。 |
mysql_list_processes |
List MySQL processes |
mysql_list_tables |
List tables in a MySQL database |
mysql_num_fields |
取得傳回欄位元的數目。 |
mysql_num_rows |
取得傳回列的數目。 |
mysql_pconnect |
開啟MySQL 伺服器長期連線。 |
mysql_ping |
如果沒有連線,則偵測伺服器的連線或重新連線。 |
mysql_query |
送出一個 query 字串。 |
mysql_real_escape_string |
Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection. |
mysql_result |
取得查詢 (query) 的結果。 |
mysql_select_db |
選擇一個資料庫。 |
mysql_stat |
取得目前系統狀態。 |
mysql_tablename |
取得資料表名稱。 |
mysql_thread_id |
Return the current thread ID |
mysql_unbuffered_query |
Send an SQL query to MySQL, without fetching and buffering the result rows |
|
|
|
|
留言列表