创建简单的MVC框架1-Modle篇之PDO库

本文介绍了一个使用PHP实现的PDO-MYSQL数据库操作类,该类通过单例模式进行实例化,并提供了数据库连接、执行SQL、获取单条记录及全部记录等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//取名为MysqlPdo.php的文件
<?php 
/**
 *PDO-MYSQL数据库操作类
*/
class MysqlPdo{
	private $dbconfig=array(
		'db'=>'mysql',
		'host'=>'localhost',
		'port'=>'3306',
		'user'=>'root',
		'pass'=>'root',
		'dbname'=>'blog',
		'charset'=>'utf8'
	);

	//单例模式 本类对象自己实例化
	private static $instalce;

	//PDO实例
	private $db;

	/**
	 *私有构造方法,作用:传参 连接数据库
	 *@param $params array 数据库连接信息
	*/
	private function __construct($params){
		// 初始化属性
		$this->dbconfig=array_merge($this->dbconfig,$params);
		// 连接数据库
		$this->connect();
	}

	/**
	 *获得单例模式
	 *@param $params array 数据库连接信息
	 *@return object 单例的对象
	*/
	public static function getInstance($params=array()){
		if (!self::$instance instanceof self) {
			self::$instance = new self($params);
		}
		return self::$instance;//返回对象
	}

	/**
	 *私有克隆
	*/
	private function __clone(){}

	/**
	 *连接目标服务器
	 */
	private function connect(){
		try{
			//连接信息
			$dsn="{$this->dbconfig['db']}:host={$this->dbconfig['host']};dbname={$this->dbconfig['dbname']};port={$this->dbconfig['port']};charset={$this->dbconfig['charset']}";
			// 实例化PDO
			$this->db=new PDO($dsn,$this->dbconfig['user'],$this->dbconfig['pass']);
		}catch(PDOExecption $e){
			die("数据库连接失败:{$e->getMessage()}");
		}
	}

	/**
	 *执行AQL
	 *@param $sql string 执行的sql语句
	 *@return object PDOStatemment
	*/
	public function query($sql){
		$rst=$this->db->query($sql);
		if ($rst===false) {
			$error=$this->db->errorInfo();
			die("数据库操作失败:ERROR{$error[1]}{$error[0]}:{$error[2]}");
		}
		return $rst;
	}

	/**
	*取的一行结果
	*@param $sql string 执行的sql语句
	*@return array 关联数组结果
	*/
	public function fetchRow($sql){
		return $this->query($sql)->fetch(PDO::FETCH_ASSOC);
	}

	/**
	*取所有结果
	*@param $sql string 执行的sql语句
	*@return array 关联数组结果
	*/
	public function fetchAll($sql){
		return $this->query($sql)->fetchAll(PDO::FETCH_ASSOC);
	}
}

使用测试:(testPDO.php)

<?php
header("Content-Type:text/html;charset=utf8");
require('pdo.php');
//实例化MysqlPdo对象
$db=MysqlPdo::getInstance();
$select="select * from test";
$insert="insert into test value(null,'term','Our term is powerfull')";
$delete='delete from test where id=4';
$update='update test set title="class" where id=3';
//查询
print_r($db->fetchALL($select));
echo "<br>";
//添加
// var_dump($db->query($insert));
//删除
// var_dump($db->query($delete));
//修改
// var_dump($db->query($update));


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值