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

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

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

2014年8月22日 星期五

PHP存取MySQL資料庫

前言


PHP(Hypertext Preprocessor)是一種動態式的互動網頁開發技術,可以籍由向應用伺服器(Application Server)請求資料庫的數据交換服務,達到與客戶端互動的效果。

存取資料庫作業


1.MySQ連線的共用常數

寫一支db_config.php的資料庫連線參數設定檔,記得在建立資料庫連線時將它引入:

<?php
define("host","localhost", false);
define("username","root", false);
define("password","mysql", false);
define("dbname","test", false);
?>


2.查詢資料表

<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once 'db_configs.php';

// 建立MySQL資料庫連線
$con=mysqli_connect(host,username,password,dbname) or die("Error " . mysqli_error($con));

// 檢查連線態狀
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// 設定MySQL為utf8編碼
mysqli_query($con,"SET NAMES 'utf8'");

// 查詢user_info資料表所有記錄
$sql = "SELECT * FROM user_info";
$result = mysqli_query($con,$sql) or die("Error in the consult.." . mysqli_error($con));

echo "<h2>查詢範例</h2>";
echo "========================";
echo "<table border='1'>
<tr>
<th>Username</th>
<th>Password</th>
</tr>";

while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['username'] . "</td>";
echo "<td>" . $row['password'] . "</td>";
echo "</tr>";
}

echo "</table>";

// 關閉MySQL資料庫連線
mysqli_close($con);
?>


3.新增一筆記錄

<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once 'db_configs.php';

// 建立MySQL資料庫連線
$con=mysqli_connect(host,username,password,dbname) or die("Error " . mysqli_error($con));

// 檢查連線態狀
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// 設定MySQL為utf8編碼
mysqli_query($con,"SET NAMES 'utf8'");

// 新增一筆記錄到user_info資料表
$sql = "INSERT INTO user_info (username, password, birth_date, sex, age) VALUES ('Eric','eric12345','1995-02-24',1,19)";
mysqli_query($con,$sql) or die("Error in the consult.." . mysqli_error($con));

echo "<h2>新增範例</h2>";
echo "========================<br/>";
echo '新增一筆記錄成功!!';

// 關閉MySQL資料庫連線
mysqli_close($con);
?>


4.更新某一記錄

<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once 'db_configs.php';

// 建立MySQL資料庫連線
$con=mysqli_connect(host,username,password,dbname) or die("Error " . mysqli_error($con));

// 檢查連線態狀
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// 設定MySQL為utf8編碼
mysqli_query($con,"SET NAMES 'utf8'");

// 更新某一筆記錄到user_info資料表
$sql = "UPDATE user_info SET password='pt54321' WHERE user_id=1";
mysqli_query($con,$sql) or die("Error in the consult.." . mysqli_error($con));

echo "<h2>更新範例</h2>";
echo "========================<br/>";
echo '更新user_id=1的記錄成功!!';

// 關閉MySQL資料庫連線
mysqli_close($con);
?>


5.刪除一筆記錄

<?php
// 設定文件utf-8編碼
header("Content-Type:text/html; charset=utf-8");
// 加入DB共用常數
require_once 'db_configs.php';

// 建立MySQL資料庫連線
$con=mysqli_connect(host,username,password,dbname) or die("Error " . mysqli_error($con));

// 查連線態狀
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// 設定MySQL為utf8編碼
mysqli_query($con,"SET NAMES 'utf8'");

// 刪除某一筆記錄
$sql = "DELETE FROM user_info WHERE username='Eric'";
mysqli_query($con,$sql) or die("Error in the consult.." . mysqli_error($con));

echo "<h2>刪除範例</h2>";
echo "========================<br/>";
echo "刪除username='Eric'的記錄成功!!";

// 關閉MySQL資料庫連線
mysqli_close($con);
?>


結論


經由上述PHP操作MySQL資料庫的新增/刪除/更改/查詢的示範,讓我們很容易理解程式編碼所要代表的意義,就那麼短短的幾行程式碼就能完成存取資料庫表格的任務。