6-4 PHP 與 MySQL 連結
6-4-1 PHP 與 MySQL 連結步驟 交談式 SQL 命令大多應用在管理資料庫方面,要發展一套資料庫的應用管理系統,還是需要透過一般系統發展工具才行,這裡所要介紹的是利用 PHP 網頁發展工具,來結合 SQL 語言,成為一套完整的網頁資料庫發展系統。 簡單的說,我需要編寫 PHP 語言程式來存取資料庫,目前常用函數有: PHP-MySQL、PHP-MySQLi 與 PDO (PHP Data Object) 等三種套件。PDO 是屬於抽象式物件導向,利用它發展出來應用程式相容於其它資料庫。另外兩套件是 MySQL 專屬套件,並不相容於其他資料庫,但目前網路上還是以它最普遍,以它為範例介紹。 (A) Mysql 與 MySQLi 區別 1. mysql 與 mysqli 兩者都是 PHP 的函數集,與 MySQL 資料庫關聯沒差異。 2. PHP 5.0 版本採用 mysql 函數,以後版本兩者皆有,到了 PHP 7.0 以後便捨棄 mysql 函數。 3. mysql 是非持續連線方式,每次連線都要開啟一個連線程序;mysqli 函數是持續連接方式,多次連線共用一個連線程式,如此可減低伺服器的負荷。 既然 PHP 7.0 以後版本不再提供 mysql 函數,吾人還是以 mysqli 為主要介紹對象,但它又有兩種套件格式: 1. 程序方式:如同一般函數呼叫方式。 2. 物件導向方式:具有繼承性、多形性、、等等物件導向的功能。 兩者在編寫程式上有很大差別,吾人為了降低程學習門檻,僅介紹『程序方式』,至於物件導向設計,等讀者孰悉『資料庫程式設計』後再自行研讀,就不會很困難。 (B) MySQLi 函數 常用 PHP-mysqli 函數有下列:
其中:mysqli_connect() 有兩種格式: n 建立 MySQL 伺服器連線:mysqli_connect ("伺服器IP", "帳號", "密碼") ,回傳連線識別值 $link (可任意指定)。 n 建立連線同時選擇資料庫:mysqli_connect ("伺服器IP", "帳號", "密碼", "database"),回傳資料庫識別值 $dblink (可任意指定)。 (B) PHP-MySQLi 連線存取步驟 圖 6-6 是透過 PHP-mysqli 連線存取 MySQL 資料庫的步驟,以下分別說明之:
圖6-6 PHP 連線存取 MySQL 步驟 (1) $db_link = mysqli_connect(“localhost”, “root”, “123456”):要求連結資料庫伺服器系統。透過網路連結到資料庫系統,如成功則傳回一個整數型態的連線識別碼 $db_link,否則傳回 0。其中,localhost 表示資料庫伺服器的主機位址(IP 或 URL 位址亦可),與連線要求的使用者名稱(root)與密碼(123456)。 (2) $select_db = mysqli_select_db(course_db):選擇資料庫,一個伺服器系統內大多會被建立多個資料庫,可利用此函數選擇其中某一個資料庫(如course_db),成功則傳回一個整數的識別碼存入 $select_db,否則傳回 0。 (3) $sql_ID = mysqli_query($sql_query):送出 SQL 查詢語言 $sql_query,須先將查詢語句存入 $sql_ID 內。成功則傳回一個整數識別碼給 $result,否則傳回 0 。 (4) $meta = mysqli_fetch_field($sql_ID):擷取查詢結果的欄位資料,再由 $meta->name 取出欄位名稱,則可印出查詢結果各欄位的名稱。 (5) $row = mysqli_fetch_row($sql_ID):擷取查詢結果($sql_ID) 的一列(row)資料,並將游標往下移,將擷取結果傳回 $row 內,如傳回空值表示已擷取完或沒有查詢成功。 (6) mysqli_close($db_link):要求與資料庫伺服器之間連線中斷。 6-4-2 範例研討:PHP 與 MySQL 連線 (A) 程式功能:Ex6_7.php 請編寫一只網頁連結資料庫伺服器的測試程式,伺服器位址在本機電腦(localhost),使用者名稱是 root,密碼是:123456。期望顯示連線成功否如下所示。
連線失敗則顯示:
(B) 程式範例: 我們利用 $db_link = mysql_connect(“localhost”, “root”, “123456”) 函數連結伺服器系統,如下: (利用 NotePad++ 編輯)
利用記編輯 Ex6_7.php 程式後,再存放在 c:/appServ/www 目錄下,再開啟瀏覽器檔案。譬如儲存於 C://appServ/www/chap6 目錄下,則輸入:http://localhost/chap6/Ex5_7.php。 6-4-3 範例研討:PHP 與資料庫連線 (A) 程式功能:Ex6_8.php 伺服器連線成功後。接著再練習連結某一資料庫(如 course_system),期望顯示連線成功否如下所示。
(B) 程式範例: 我們利用 $select_db = mysqli_select_db(course_db)函數來選擇連結 course_db資料庫,如下:
|
翻轉工作室:粘添壽
資料庫程式設計:
翻轉電子書系列:
|