private function connectDatabase(OutputInterface $output) { $param = array(); $param['host'] = $this->dialog->ask($output, '<question>Where is your database server? [localhost]</question> ', 'localhost'); $param['user'] = $this->dialog->ask($output, '<question>What is your database username? [root]</question> ', 'root'); $param['password'] = $this->dialog->ask($output, '<question>What is your database password?</question> ', ''); $param['driver'] = 'pdo_mysql'; // Save dbName for later use to create database $this->dbName = $this->dialog->ask($output, '<question>What is your database name? [BungaWire]</question> ', 'BungaWire'); $output->writeln(''); // Write empty line for easy read $config = new Configuration(); $this->dbConnection = DriverManager::getConnection($param, $config); $this->dbConnection->connect(); if ($this->dbConnection->isConnected() === false) { $output->writeln('Database connection failed, please check your setting'); $output->writeln('You connection configuration is:'); $output->writeln('host: ' . $param['host']); $output->writeln('user: '******'user']); $output->writeln('password: '******'password']); $output->writeln('Database Name: ' . $param['dbname']); $output->writeln('Driver: ' . $param['driver']); $output->writeln($this->dbConnection->errorInfo()); $output->writeln('Please try again!'); $this->connectDatabase($output); } else { $output->writeln('Database connected!'); } }
/** * Return an object property * * @param string $strKey The property name * * @return string|null The property value */ public function __get($strKey) { if ($strKey == 'error') { $info = $this->resConnection->errorInfo(); return 'SQLSTATE ' . $info[0] . ': error ' . $info[1] . ': ' . $info[2]; } return null; }
/** * Fetch extended error information associated with the last database operation. * * @return string */ public function errorMsg() { return json_encode($this->connection->errorInfo()); }