mirror of
				https://github.com/yiisoft/yii2.git
				synced 2025-11-04 06:37:55 +08:00 
			
		
		
		
	Fixes #1650: Added Connection::pdoClass.
This commit is contained in:
		@ -35,6 +35,7 @@ Yii Framework 2 Change Log
 | 
				
			|||||||
- Enh #1634: Use masked CSRF tokens to prevent BREACH exploits (qiangxue)
 | 
					- Enh #1634: Use masked CSRF tokens to prevent BREACH exploits (qiangxue)
 | 
				
			||||||
- Enh #1641: Added `BaseActiveRecord::updateAttributes()` (qiangxue)
 | 
					- Enh #1641: Added `BaseActiveRecord::updateAttributes()` (qiangxue)
 | 
				
			||||||
- Enh #1646: Added postgresql `QueryBuilder::checkIntegrity` and `QueryBuilder::resetSequence` (Ragazzo)
 | 
					- Enh #1646: Added postgresql `QueryBuilder::checkIntegrity` and `QueryBuilder::resetSequence` (Ragazzo)
 | 
				
			||||||
 | 
					- Enh #1645: Added `Connection::$pdoClass` property (Ragazzo)
 | 
				
			||||||
- Enh: Added `favicon.ico` and `robots.txt` to defauly application templates (samdark)
 | 
					- Enh: Added `favicon.ico` and `robots.txt` to defauly application templates (samdark)
 | 
				
			||||||
- Enh: Added `Widget::autoIdPrefix` to support prefixing automatically generated widget IDs (qiangxue)
 | 
					- Enh: Added `Widget::autoIdPrefix` to support prefixing automatically generated widget IDs (qiangxue)
 | 
				
			||||||
- Enh: Support for file aliases in console command 'message' (omnilight)
 | 
					- Enh: Support for file aliases in console command 'message' (omnilight)
 | 
				
			||||||
 | 
				
			|||||||
@ -253,7 +253,10 @@ class Connection extends Component
 | 
				
			|||||||
	 * @var Schema the database schema
 | 
						 * @var Schema the database schema
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	private $_schema;
 | 
						private $_schema;
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
					     * @var string Custom PDO wrapper class. If not set, it will use "PDO" or "yii\db\mssql\PDO" when MSSQL is used.
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public $pdoClass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Returns a value indicating whether the DB connection is established.
 | 
						 * Returns a value indicating whether the DB connection is established.
 | 
				
			||||||
@ -338,13 +341,17 @@ class Connection extends Component
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
	protected function createPdoInstance()
 | 
						protected function createPdoInstance()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		$pdoClass = 'PDO';
 | 
							$pdoClass = $this->pdoClass;
 | 
				
			||||||
		if (($pos = strpos($this->dsn, ':')) !== false) {
 | 
							if ($pdoClass === null) {
 | 
				
			||||||
			$driver = strtolower(substr($this->dsn, 0, $pos));
 | 
								$pdoClass = 'PDO';
 | 
				
			||||||
			if ($driver === 'mssql' || $driver === 'dblib' || $driver === 'sqlsrv') {
 | 
								if (($pos = strpos($this->dsn, ':')) !== false) {
 | 
				
			||||||
				$pdoClass = 'yii\db\mssql\PDO';
 | 
									$driver = strtolower(substr($this->dsn, 0, $pos));
 | 
				
			||||||
 | 
									if ($driver === 'mssql' || $driver === 'dblib' || $driver === 'sqlsrv') {
 | 
				
			||||||
 | 
										$pdoClass = 'yii\db\mssql\PDO';
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return new $pdoClass($this->dsn, $this->username, $this->password, $this->attributes);
 | 
							return new $pdoClass($this->dsn, $this->username, $this->password, $this->attributes);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user