簡介
PHP的物件導向技術是從PHP3以後開始支援,到了PHP5得到了大力的發展,而且整個模組化的物件結構逐漸完善。記得在PHP存取MySQL資料庫文章中已向大家介紹過非物件導向的DB操作方式。在本篇文章中將採用mysqli類別來示範如何以物件的方式進行MySQL資料庫的存取服務。它屬於PDO(PHP Data Objects)存取資料庫的延伸函式庫的一部份。
以物件向導向存取MySQL
1.設定連結DB的共用常數
<?php
define("host","localhost", false);
define("username","root", false);
define("password","mysql", false);
define("dbname","test", false);
?>
2.查詢作業(query_ext.php)
<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常變數
require_once '../db_configs.php';
$mysqli = new mysqli(host, username, password, dbname);
// 檢查連線態狀
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
// 設定MySQL為utf8編碼
$mysqli->set_charset("utf8");
// 查詢user_info資料表所有記錄
$sql = "SELECT * FROM user_info";
$result = $mysqli->query($sql);
echo "<h2>查詢範例(object)</h2>";
echo "========================";
echo "<table border='1'>
<tr>
<th>Username</th>
<th>Password</th>
</tr>";
while($row = $result->fetch_array()) {
echo "<tr>";
echo "<td>" . $row['username'] . "</td>";
echo "<td>" . $row['password'] . "</td>";
echo "</tr>";
}
echo "</table>";
// 關閉MySQL資料庫連線
$mysqli->close();
?>
3.新增作業(add_ext.php)
<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once '../db_configs.php';
$mysqli = new mysqli(host, username, password, dbname);
// 檢查連線態狀
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
// 設定MySQL為utf8編碼
$mysqli->set_charset("utf8");
// 新增一筆記錄到user_info資料表
$sql = "INSERT INTO user_info (username, password, birth_date, sex, age) VALUES ('Eric','eric12345','1995-02-24',1,19)";
$mysqli->query($sql);
echo "<h2>新增範例(object)</h2>";
echo "========================<br/>";
echo '新增一筆記錄成功!!';
// 關閉MySQL資料庫連線
$mysqli->close();
?>
4.更新作業(update_ext.php)
<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once '../db_configs.php';
$mysqli = new mysqli(host, username, password, dbname);
// 檢查連線態狀
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
// 設定MySQL為utf8編碼
$mysqli->set_charset("utf8");
// 更新某一筆記錄到user_info資料表
$sql = "UPDATE user_info SET password='pt54321' WHERE user_id=1";
$mysqli->query($sql);
echo "<h2>更新範例(object)</h2>";
echo "========================<br/>";
echo '更新user_id=1的記錄成功!!';
// 關閉MySQL資料庫連線
$mysqli->close();
?>
5.刪除作業(delete_ext.php)
<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once '../db_configs.php';
$mysqli = new mysqli(host, username, password, dbname);
// 檢查連線態狀
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
// 設定MySQL為utf8編碼
$mysqli->set_charset("utf8");
// 刪除某一筆記錄
$sql = "DELETE FROM user_info WHERE username='Eric'";
$mysqli->query($sql);
echo "<h2>刪除範例(object)</h2>";
echo "========================<br/>";
echo "刪除username='Eric'的記錄成功!!";
// 關閉MySQL資料庫連線
$mysqli->close();
?>
結論
透過PHP以物件的方式來操作MySQL資料庫的數據,的確讓人比較不容易很直觀的理解,不過如果只是單純要使用PHP現有的類別函數庫,仔細了解程式代碼應該還是可以很快上手。在此還是建議各位先去充實PHP物件導向的程式設計知識,以利進階的模組化程式設計觀念的建立。
沒有留言:
張貼留言