PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。 取得字串長度 <?...

2014年8月26日 星期二

PHP&MySQL物件導向應用

簡介


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物件導向的程式設計知識,以利進階的模組化程式設計觀念的建立。

沒有留言:

張貼留言