mvc模式下的数据库连接操作
Posted dumenglong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mvc模式下的数据库连接操作相关的知识,希望对你有一定的参考价值。
mvc模式下数据库操作分为三部分,举一个容易理解的例子,mvc就是一种设计模式,
分为模型(Model),控制器(Controller ),视图(View),各自分工明确,连接数据库操作也遵从于这种模式
一部分是用来设置数据库的的用户名和密码的文件,可同时设置多个数据库的信息,实现可扩展性,
一部分是连接数据库,实例化类的操作,
一部分是用来调用实例化后的对象中的方法,写sql语句部分,分为了三个文件
在config.php文件中,设置常量define关于数据库信息,此处可以设置为二维数组,实现连接多个数据库的操作
<?php define(‘DB_HOST‘, ‘localhost‘); define(‘DB_USER‘, ‘root‘); define(‘DB_PWD‘, ‘root‘); define(‘DB_NAME‘, ‘dml‘); define(‘DB_CHARSET‘,‘utf8‘);
将config.php引入到db.php中,此文件主要用来连接数据库,不做其他任何操作
<?php require_once "config.php"; class db // 设置静态变量存储实例对象 private static $db = null; // 设置数据库对象 private static $conn = null; private $dbConfig = [ ‘host‘ => DB_HOST, ‘user‘ =>DB_USER, ‘pwd‘ => DB_PWD, ‘dbname‘ => DB_NAME, ‘charset‘=>DB_CHARSET ]; // 影响数据的行数 public $rowNum; // 影响数据当前的id值 public $inserId; private function __construct() $this->conn(); // 禁止克隆 private function __clone() // 连接数据库 private function conn() self::$conn = new mysqli( $this->dbConfig[‘host‘], $this->dbConfig[‘user‘], $this->dbConfig[‘pwd‘], $this->dbConfig[‘dbname‘] ); self::$conn->set_charset($this->dbConfig[‘charset‘]); if (self::$conn->connect_errno) die("数据库连接失败" . self::$conn->connect_error); // 获取类的实例 public static function getDb(array $parms = []) if (!self::$db instanceof self) self::$db = new self($parms); return self::$db; // 增删改方法,判断数执行是否成功,得到影响的行数和返回当前行的id public function exec($sql) return self::$conn->query($sql); if (self::$conn->affected_rows > 0) $this->rowNum = self::$conn->affected_rows; if (self::$conn->insert_id > 0) $this->inserId = self::$conn->insert_id; else echo "执行数据库失败" . self::$conn->connect_error; // 查询单条数据 public function fetch($sql) return self::$conn->query($sql)->fetch_assoc(); // 查询多条数据库内容 public function fetchall($sql) return self::$conn->query($sql)->fetch_all(); // 关闭数据库 public function __destruct() self::$conn->close();
在operation.php文件中,实现我们在db类中定义的方法,建立sql语句
<?php require_once "db.php"; // 调用getDb方法,将对象赋值给变量a $a=db::getDb(); // var_dump($a); // 查询单行的数据 // $sql="SELECT * FROM user"; // var_dump($a->fetch($sql)); // 查询多行的数据 // var_dump($a->fetchall($sql)); // 执行插入数据的操作 // $sql="INSERT `user` (`name`,`password`) VALUES (‘山东省‘,123456)"; // var_dump($a->exec($sql));
以上是关于mvc模式下的数据库连接操作的主要内容,如果未能解决你的问题,请参考以下文章
MVC模式(Model View Controller)下实现数据库的连接,对数据的删,查操作
MVC设计模式下实现数据库的连接,并获取所有数据到浏览器页面上显示