/**
  * @see IWebApplicationInstaller_Script::run()
  */
 public function run()
 {
     $wai = WAI::getInstance();
     if (!function_exists('mysql_connect')) {
         $this->error_msg = 'MySQL support not included in PHP.';
         return false;
     }
     $conn = @mysql_connect($wai->getRequest('database_server'), null, null);
     if (!$conn || mysql_errno() >= 2000) {
         $this->error_msg = array('can\'t find the a MySQL server on {p1}: {p2}', array($wai->getRequest('database_server'), mysql_error()));
         return false;
     }
     $conn = @mysql_connect($wai->getRequest('database_server'), $wai->getRequest('database_username'), $wai->getRequest('database_password'));
     if (!$conn) {
         $this->error_msg = 'That username/password doesn\'t work';
         return false;
     }
     if (!mysql_get_server_info()) {
         WAI::warningMsg('Cannot determine the version of MySQL installed. Please ensure at least version 4.1 is installed.');
     } else {
         list($majorRequested, $minorRequested) = explode('.', '4.1');
         $result = mysql_query('SELECT VERSION()');
         $row = mysql_fetch_row($result);
         $version = ereg_replace('([A-Za-z-])', '', $row[0]);
         list($majorHas, $minorHas) = explode('.', substr(trim($version), 0, 3));
         if ($majorHas < $majorRequested || $majorHas == $majorRequested && $minorHas < $minorRequested) {
             $this->error_msg = array('MySQL version 4.1 is required, you only have {p1}.{p2}', array($majorHas, $minorHas));
             return false;
         }
     }
     if (@mysql_select_db($wai->getRequest('database_database'))) {
         return true;
     }
     if (@mysql_query('CREATE DATABASE testing123')) {
         mysql_query('DROP DATABASE testing123');
         return true;
     } else {
         $this->error_msg = array('User \'{p1}\' doesn\'t have CREATE DATABASE permissions.', array($wai->getRequest('database_username')));
         return false;
     }
     return true;
     // no error
 }