示例#1
0
 /**
  * @param MWP_IncrementalBackup_Database_Configuration $configuration
  *
  * @return string
  */
 private static function getDsn(MWP_IncrementalBackup_Database_Configuration $configuration)
 {
     $pdoParameters = array('dbname' => $configuration->getDatabase(), 'charset' => $configuration->getCharset());
     if ($configuration->isSocket()) {
         $pdoParameters['unix_socket'] = $configuration->getSocketPath();
     } else {
         $pdoParameters['host'] = $configuration->getHost();
         if (($port = $configuration->getPort()) !== null) {
             $pdoParameters['port'] = $configuration->getPort();
         }
     }
     $parameters = array();
     foreach ($pdoParameters as $name => $value) {
         $parameters[] = $name . '=' . $value;
     }
     $dsn = sprintf("mysql:%s", implode(';', $parameters));
     return $dsn;
 }
 public function __construct(MWP_IncrementalBackup_Database_Configuration $configuration)
 {
     $this->configuration = $configuration;
     if (!extension_loaded('mysql')) {
         throw new MWP_IncrementalBackup_Database_Exception_ConnectionException("Mysql extension is not loaded.");
     }
     if ($configuration->isSocket()) {
         $this->connection = @mysql_connect(':' . $configuration->getSocketPath(), $configuration->getUsername(), $configuration->getPassword());
     } else {
         $host = $configuration->getHost();
         if ($configuration->getPort() !== null) {
             $host .= ':' . $configuration->getPort();
         }
         $this->connection = @mysql_connect($host, $configuration->getUsername(), $configuration->getPassword());
     }
     if (!is_resource($this->connection)) {
         throw new MWP_IncrementalBackup_Database_Exception_ConnectionException(mysql_error(), mysql_errno());
     }
     @mysql_set_charset($configuration->getCharset(), $this->connection);
     mysql_select_db($configuration->getDatabase(), $this->connection);
 }