Rumah pembangunan bahagian belakang tutorial php 用单例模式来设计一个PHP数据库类_PHP教程

用单例模式来设计一个PHP数据库类_PHP教程

Jul 13, 2016 am 10:33 AM
Corak singleton

最近感觉网站的数据库压力比较大,造成网站的速度下降得很厉害。因为有相当一部分的页面是直接连接数据库读数据的,所以把这部分的页面也改为使用数据库单例类来实现。现在基本都统一使用下面这个类来连接数据库了。

<?php
class nmdb 
{
	private $link;
	static private $_instance;
	// 连接数据库
	private function __construct($host, $username, $password)
	{
		$this->link = mysql_connect($host, $username, $password);
		$this->query("SET NAMES 'utf8'", $this->link);
		//echo mysql_errno($this->link) . ": " . mysql_error($link). "n";
		//var_dump($this->link);
		return $this->link;
	}
	
	private function __clone(){}
	
	public static function get_class_nmdb($host, $username, $password)
	{
        //$connector = new nmdb($host, $username, $password);
        //return $connector;
		
		if( FALSE == (self::$_instance instanceof self) )
		{
			self::$_instance = new self($host, $username, $password);
		}
		return self::$_instance;
    }
	
	// 连接数据表
	public function select_db($database)
	{
		$this->result = mysql_select_db($database);
		return $this->result;
	}
	
	// 执行SQL语句
	public function query($query)
	{
		return $this->result = mysql_query($query, $this->link);
	}
	
	// 将结果集保存为数组
	public function fetch_array($fetch_array)
	{
		return $this->result = mysql_fetch_array($fetch_array, MYSQL_ASSOC);
	}
	
	// 获得记录数目
	public function num_rows($query)
	{
		return $this->result = mysql_num_rows($query);
	}
	
	// 关闭数据库连接
	public function close()
	{
		return $this->result = mysql_close($this->link);
	}
	
}
?>
Salin selepas log masuk

这个类的使用如下:

$connector = nmdb::get_class_nmdb($host, $username, $password);
$connector -> select_db($database);
Salin selepas log masuk

下面的类也可以参考下:

<?php
/*
* mysql 单例
*/
class mysql{
    private $host    ='localhost'; //数据库主机
    private $user     = 'root'; //数据库用户名
    private $pwd     = ''; //数据库用户名密码
    private $database = 'imoro_imoro'; //数据库名
    private $charset = 'utf8'; //数据库编码,GBK,UTF8,gb2312
    private $link;             //数据库连接标识;
    private $rows;             //查询获取的多行数组
    static $_instance; //存储对象
    /**
     * 构造函数
     * 私有
     */
    private function __construct($pconnect = false) {
        if (!$pconnect) {
            $this->link = @ mysql_connect($this->host, $this->user, $this->pwd) or $this->err();
        } else {
            $this->link = @ mysql_pconnect($this->host, $this->user, $this->pwd) or $this->err();
        }
        mysql_select_db($this->database) or $this->err();
        $this->query("SET NAMES '{$this->charset}'", $this->link);
        return $this->link;
    }
    /**
     * 防止被克隆
     *
     */
    private function __clone(){}
    public static function getInstance($pconnect = false){
        if(FALSE == (self::$_instance instanceof self)){
            self::$_instance = new self($pconnect);
        }
        return self::$_instance;
    }
    /**
     * 查询
     */
    public function query($sql, $link = '') {
        $this->result = mysql_query($sql, $this->link) or $this->err($sql);
        return $this->result;
    }
    /**
     * 单行记录
     */
    public function getRow($sql, $type = MYSQL_ASSOC) {
        $result = $this->query($sql);
        return @ mysql_fetch_array($result, $type);
    }
    /**
     * 多行记录
     */
    public function getRows($sql, $type = MYSQL_ASSOC) {
        $result = $this->query($sql);
        while ($row = @ mysql_fetch_array($result, $type)) {
            $this->rows[] = $row;
        }
        return $this->rows;
    }
    /**
     * 错误信息输出
     */
    protected function err($sql = null) {
        //这里输出错误信息
        echo 'error';
        exit();
    }
}
//用例
$db = mysql::getInstance();
$db2 = mysql::getInstance();
$data = $db->getRows('select * from blog');
//print_r($data);
//判断两个对象是否相等
if($db === $db2){
    echo 'true';
}
?>
Salin selepas log masuk

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752473.htmlTechArticle最近感觉网站的数据库压力比较大,造成网站的速度下降得很厉害。因为有相当一部分的页面是直接连接数据库读数据的,所以把这部分的...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Satu artikel untuk memahami corak tunggal dalam JavaScript Satu artikel untuk memahami corak tunggal dalam JavaScript Apr 25, 2023 pm 07:53 PM

Corak singleton JS ialah corak reka bentuk yang biasa digunakan yang memastikan bahawa kelas hanya mempunyai satu contoh. Mod ini digunakan terutamanya untuk mengurus pembolehubah global untuk mengelakkan konflik penamaan dan pemuatan berulang. Ia juga boleh mengurangkan penggunaan memori dan meningkatkan kebolehselenggaraan dan skalabiliti.

Aplikasi mod tunggal dan mod kilang dalam fungsi C++ membebankan dan menulis semula Aplikasi mod tunggal dan mod kilang dalam fungsi C++ membebankan dan menulis semula Apr 19, 2024 pm 05:06 PM

Corak Singleton: Sediakan contoh tunggal dengan parameter berbeza melalui lebihan fungsi. Corak kilang: Cipta pelbagai jenis objek melalui penulisan semula fungsi untuk memisahkan proses penciptaan daripada kelas produk tertentu.

Bermula dengan PHP: Corak Singleton Bermula dengan PHP: Corak Singleton May 20, 2023 am 08:13 AM

Dalam pembangunan perisian, kita sering menghadapi situasi di mana berbilang objek perlu mengakses sumber yang sama. Untuk mengelakkan konflik sumber dan meningkatkan kecekapan program, kami boleh menggunakan corak reka bentuk. Antaranya, corak tunggal ialah cara yang biasa digunakan untuk mencipta objek, yang memastikan bahawa kelas hanya mempunyai satu contoh dan menyediakan akses global. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan corak tunggal dan memberikan beberapa cadangan amalan terbaik. 1. Apakah mod tunggal? Mod tunggal adalah cara yang biasa digunakan untuk mencipta objek. Ciri-cirinya adalah untuk memastikan bahawa kelas hanya mempunyai satu contoh

Dalam PHP, apakah konsep corak reka bentuk tunggal? Dalam PHP, apakah konsep corak reka bentuk tunggal? Aug 18, 2023 pm 02:25 PM

Corak Singleton memastikan bahawa kelas hanya mempunyai satu contoh dan menyediakan pusat akses global. Ia memastikan bahawa hanya satu objek tersedia dan terkawal dalam aplikasi. Corak Singleton menyediakan cara untuk mengakses objek uniknya secara langsung tanpa membuat instantiating objek kelas. Contoh&lt;?php classdatabase{ publicstatic$connection;

Corak Reka Bentuk PHP: Laluan ke Kecemerlangan Kod Corak Reka Bentuk PHP: Laluan ke Kecemerlangan Kod Feb 21, 2024 pm 05:30 PM

Pengenalan Corak reka bentuk PHP ialah satu set penyelesaian yang terbukti kepada cabaran biasa dalam pembangunan perisian. Dengan mengikut corak ini, pembangun boleh mencipta kod yang elegan, teguh dan boleh diselenggara. Mereka membantu pembangun mengikuti prinsip SOLID (tanggungjawab tunggal, tertutup terbuka, penggantian Liskov, pengasingan antara muka dan penyongsangan kebergantungan), dengan itu meningkatkan kebolehbacaan kod, kebolehselenggaraan dan kebolehskalaan. Jenis Corak Reka Bentuk Terdapat banyak corak reka bentuk yang berbeza, masing-masing mempunyai tujuan dan kelebihan tersendiri. Berikut ialah beberapa corak reka bentuk PHP yang paling biasa digunakan: Corak Singleton: Memastikan kelas hanya mempunyai satu tika dan menyediakan cara untuk mengakses tika ini secara global. Corak Kilang: Mencipta objek tanpa menyatakan kelas tepatnya. Ia membolehkan pemaju bersyarat

Senario aplikasi dan proses keselamatan benang bagi mod tunggal dalam sistem teragih PHP Senario aplikasi dan proses keselamatan benang bagi mod tunggal dalam sistem teragih PHP Oct 15, 2023 pm 04:48 PM

Senario aplikasi dan proses keselamatan benang mod tunggal dalam sistem teragih PHP Pengenalan: Dengan perkembangan pesat Internet, sistem teragih telah menjadi topik hangat dalam pembangunan perisian moden. Dalam sistem teragih, keselamatan benang sentiasa menjadi isu penting. Dalam pembangunan PHP, corak tunggal ialah corak reka bentuk yang biasa digunakan, yang boleh menyelesaikan masalah perkongsian sumber dan keselamatan benang dengan berkesan. Artikel ini akan menumpukan pada senario aplikasi dan proses keselamatan benang bagi corak tunggal dalam sistem teragih PHP dan menyediakan contoh kod khusus. 1. Mod tunggal

Membongkar rahsia corak reka bentuk PHP Membongkar rahsia corak reka bentuk PHP Feb 21, 2024 pm 01:19 PM

1. Apakah corak reka bentuk PHP? Corak reka bentuk PHP ialah templat kod pratakrif yang direka untuk menyelesaikan masalah pembangunan perisian biasa. Mereka menyediakan penyelesaian terbukti yang meningkatkan kebolehgunaan semula kod, kebolehselenggaraan dan kebolehskalaan. 2. Jenis corak reka bentuk PHP Terdapat banyak corak reka bentuk yang berbeza dalam PHP, dan setiap corak mempunyai tujuan tertentu. Corak yang paling biasa termasuk: Corak Singleton: Memastikan hanya terdapat satu contoh kelas. Corak Kilang: Mencipta objek daripada jenis yang berbeza berdasarkan data yang dihantar kepadanya. Mod strategi: Membenarkan atur cara menukar kelakuannya semasa masa jalan. Corak Pemerhati: Membenarkan objek melanggan acara dan dimaklumkan apabila peristiwa berlaku. 3. Contoh mod Singleton classSingleInstance{private

Analisis senario aplikasi biasa corak tunggal dalam PHP Analisis senario aplikasi biasa corak tunggal dalam PHP Oct 15, 2023 pm 01:25 PM

Gambaran keseluruhan analisis senario aplikasi biasa corak tunggal dalam PHP: Corak tunggal (SingletonPattern) ialah corak reka bentuk ciptaan yang memastikan bahawa kelas hanya mempunyai satu tika dan menyediakan pusat akses global untuk mengakses tika. Dalam PHP, menggunakan mod tunggal boleh mengehadkan bilangan instantiasi dan penggunaan sumber kelas secara berkesan, dan meningkatkan prestasi dan kebolehselenggaraan kod. Artikel ini akan menganalisis senario aplikasi biasa dan memberikan contoh kod PHP khusus untuk menggambarkan penggunaan dan faedah corak tunggal. Paip sambungan pangkalan data

See all articles