色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

php pdo封裝類

任良志1年前9瀏覽0評論

今天我們來談?wù)凱HP PDO封裝類,這是一個(gè)非常實(shí)用的工具,通過對PDO的封裝,可以更方便的操作數(shù)據(jù)庫,減少了代碼量,提高了開發(fā)效率。

我們來看一下優(yōu)化前,我們連接MySQL并插入數(shù)據(jù)的代碼:

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$sql = "INSERT INTO users (name, age) VALUES ('Tom', '20')";
// 插入數(shù)據(jù)
$conn->exec(sql);
echo "插入成功";
} catch(PDOException $e) {
echo $e->getMessage();
}
// 關(guān)閉連接
$conn = null;

可以看到,代碼量相對較大,而且也不夠直觀,如果我們需要進(jìn)行簡單的增刪改查操作,也需要寫很多重復(fù)的代碼。那么我們就需要使用一個(gè)PHP PDO封裝類。

下面是我們使用PHP PDO封裝類進(jìn)行代碼優(yōu)化。我們首先需要定義一個(gè)PDO封裝類,將常用的增刪改查封裝起來,使用時(shí)直接調(diào)用。

class Db {
// 定義變量
private static $instance;
private $config = [];
private $db;
private $sql;
private $stmt;
// 構(gòu)造函數(shù)
private function __construct() {}
// 獲取單例
public static function getInstance() {
if(!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
// 連接數(shù)據(jù)庫
public function connect($host, $user, $password, $database, $port = 3306, $charset = 'utf8') {
$dsn = sprintf('mysql:host=%s;port=%d;dbname=%s;charset=%s', $host, $port, $database, $charset);
$options = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false
);
try{
$this->db = new PDO($dsn, $user, $password, $options);
return $this;
} catch(PDOException $e) {
printf('Database connect error:%s', $e->getMessage());
}
}
// 執(zhí)行SQL語句
public function execute($sql, $params = []) {
$this->sql = $sql;
try{
$this->stmt = $this->db->prepare($this->sql);
$this->stmt->execute($params);
return $this;
} catch(PDOException $e) {
printf('SQL語句執(zhí)行錯(cuò)誤:%s', $e->getMessage());
}
}
// 獲取一行記錄
public function fetchRow() {
return $this->stmt->fetch();
}
// 獲取多行記錄
public function fetchAll() {
return $this->stmt->fetchAll();
}
// 獲取結(jié)果集的第一行第一列的值
public function fetchColumn() {
return $this->stmt->fetchColumn();
}
// 獲取結(jié)果集的行數(shù)
public function rowCount() {
return $this->stmt->rowCount();
}
}

我們可以看到,在封裝類里面定義了常用的連接、執(zhí)行SQL語句和獲取結(jié)果集的方法。我們只需要調(diào)用相應(yīng)的方法即可,而不必再重復(fù)編寫大量的代碼。

以下是我們優(yōu)化后的示例代碼:

$Db = Db::getInstance();
$Db->connect('localhost', 'root', '', 'test');
$sql = "INSERT INTO users (name, age) VALUES ('Tom', '20')";
$Db->execute($sql);
echo "插入成功";

我們可以看到,優(yōu)化后的代碼用的次數(shù)更少而且也比優(yōu)化前的代碼清晰明了。此外,我們還可以愉快地應(yīng)用這些函數(shù)來執(zhí)行諸如更新、刪除和查詢之類的操作。

總結(jié)一下,PHP PDO封裝類是一個(gè)非常實(shí)用的工具,通過對PDO的封裝,可以更方便的操作數(shù)據(jù)庫,減少了代碼量,提高了開發(fā)效率。我們可以通過定義常用的增刪改查方法,來對不同數(shù)據(jù)庫進(jìn)行操作,減少了代碼冗余程度,使我們的代碼更加清晰簡潔。

上一篇php pdf換行
下一篇php ocr