123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- namespace daswork\db;
- use mysqli;
- class Mysql
- {
- // 数据库连接实例
- private static $instance = [];
- // 当前数据表名称(含前缀)
- protected $table = '';
- // 当前数据表名称(不含前缀)
- protected $name = '';
- // 当前数据表主键
- protected $pk;
- // 当前数据表前缀
- protected $prefix = '';
- // 查询参数
- protected $options = [];
- /**
- * 数据库初始化 并取得数据库类实例
- * @static
- * @access public
- * @param mixed $config 连接配置
- * @param bool|string $name 连接标识 true 强制重新连接
- * @return Connection
- * @throws Exception
- */
- public static function connect($config = [], $name = false) {
- if (false === $name) {
- $name = md5(serialize($config));
- }
- if (true === $name || !isset(self::$instance[$name])) {
- if (true === $name) {
- return self::createConnect($config['host'], $config['username'], $config['passwd'], $config['dbname']);
- } else {
- self::$instance[$name] = self::createConnect($config['host'], $config['username'], $config['passwd'], $config['dbname']);
- }
- }
- return self::$instance[$name];
- }
- /**
- * 新建连接
- */
- private static function createConnect($host, $username, $passwd, $dbname)
- {
- $mysqli = new mysqli($host, $username, $passwd, $dbname);
- if ($mysqli->connect_error) {
- throw new \Exception('Connect Error ' . $mysqli->connect_error , $mysqli->connect_errno);
- }
- $mysqli->set_charset('utf8');
- return $mysqli;
- }
- /**
- * 指定默认的数据表名(不含前缀)
- * @access public
- * @param string $name
- * @return $this
- */
- public function name($name)
- {
- $this->name = $name;
- return $this;
- }
- /**
- * 指定默认数据表名(含前缀)
- * @access public
- * @param string $table 表名
- * @return $this
- */
- public function setTable($table)
- {
- $this->table = $table;
- return $this;
- }
- /**
- * 得到当前或者指定名称的数据表
- * @access public
- * @param string $name
- * @return string
- */
- public function getTable($name = '')
- {
- if ($name || empty($this->table)) {
- $name = $name ?: $this->name;
- $tableName = $this->prefix;
- if ($name) {
- $tableName .= $name;
- }
- } else {
- $tableName = $this->table;
- }
- return $tableName;
- }
- }
|