/usr/share/php/Horde/Db/Adapter/Pdo/Mysql.php is in php-horde-db 2.3.4-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | <?php
/**
* Copyright 2007 Maintainable Software, LLC
* Copyright 2008-2016 Horde LLC (http://www.horde.org/)
*
* @author Mike Naberezny <mike@maintainable.com>
* @author Derek DeVries <derek@maintainable.com>
* @author Chuck Hagenbuch <chuck@horde.org>
* @license http://www.horde.org/licenses/bsd
* @category Horde
* @package Db
* @subpackage Adapter
*/
/**
* PDO_MySQL Horde_Db_Adapter
*
* @author Mike Naberezny <mike@maintainable.com>
* @author Derek DeVries <derek@maintainable.com>
* @author Chuck Hagenbuch <chuck@horde.org>
* @license http://www.horde.org/licenses/bsd
* @category Horde
* @package Db
* @subpackage Adapter
*/
class Horde_Db_Adapter_Pdo_Mysql extends Horde_Db_Adapter_Pdo_Base
{
/**
* @var string
*/
protected $_schemaClass = 'Horde_Db_Adapter_Mysql_Schema';
/**
* @return string
*/
public function adapterName()
{
return 'PDO_MySQL';
}
/**
* @return boolean
*/
public function supportsMigrations()
{
return true;
}
/*##########################################################################
# Connection Management
##########################################################################*/
/**
* Connect to the db
*/
public function connect()
{
if ($this->_active) {
return;
}
parent::connect();
// ? $this->_connection->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
// Set the default charset. http://dev.mysql.com/doc/refman/5.1/en/charset-connection.html
if (!empty($this->_config['charset'])) {
$this->setCharset($this->_config['charset']);
}
}
/*##########################################################################
# Protected
##########################################################################*/
/**
* Parse configuration array into options for PDO constructor.
*
* http://pecl.php.net/bugs/7234
* Setting a bogus socket does not appear to work.
*
* @throws Horde_Db_Exception
* @return array [dsn, username, password]
*/
protected function _parseConfig()
{
$this->_config['adapter'] = 'mysql';
$this->_checkRequiredConfig(array('adapter', 'username'));
if (!empty($this->_config['socket'])) {
$this->_config['unix_socket'] = $this->_config['socket'];
unset($this->_config['socket']);
}
if (!empty($this->_config['host']) &&
$this->_config['host'] == 'localhost') {
$this->_config['host'] = '127.0.0.1';
}
// Try an empty password if it's not set.
if (!isset($this->_config['password'])) {
$this->_config['password'] = '';
}
// Collect options to build PDO Data Source Name (DSN) string.
$dsnOpts = $this->_config;
unset($dsnOpts['adapter'],
$dsnOpts['username'],
$dsnOpts['password'],
$dsnOpts['charset'],
$dsnOpts['phptype']);
$dsnOpts = $this->_normalizeConfig($dsnOpts);
if (isset($dsnOpts['port'])) {
if (empty($dsnOpts['host'])) {
throw new Horde_Db_Exception('Host is required if port is specified');
}
}
if (isset($dsnOpts['unix_socket'])) {
if (!empty($dsnOpts['host']) ||
!empty($dsnOpts['port'])) {
throw new Horde_Db_Exception('Host and port must not be set if using a UNIX socket');
}
}
// Return DSN and user/pass for connection.
return array(
$this->_buildDsnString($dsnOpts),
$this->_config['username'],
$this->_config['password']);
}
}
|