Example #1
0
 /**
  * @see DBManager::query()
  */
 public function query($sql, $dieOnError = false, $msg = '', $suppress = false)
 {
     // Flag if there are odd number of single quotes
     if (substr_count($sql, "'") & 1) {
         $GLOBALS['log']->error("SQL statement[" . $sql . "] has odd number of single quotes.");
     }
     $sql = $this->appendN($sql);
     parent::countQuery($sql);
     $GLOBALS['log']->info('Query:' . $sql);
     $this->checkConnection();
     $this->query_time = microtime(true);
     if ($suppress) {
     } else {
         $result = @mssql_query($sql, $this->database);
     }
     if (!$result) {
         // awu Bug 10657: ignoring mssql error message 'Changed database context to' - an intermittent
         // 				  and difficult to reproduce error. The message is only a warning, and does
         //				  not affect the functionality of the query
         $sqlmsg = mssql_get_last_message();
         $sqlpos = strpos($sqlmsg, 'Changed database context to');
         if ($dieOnError) {
             if ($sqlpos !== false) {
                 // if sqlmsg has 'Changed database context to', just log it
                 $GLOBALS['log']->debug(mssql_get_last_message() . ": " . $sql);
             } else {
                 sugar_die('SQL Error : ' . mssql_get_last_message());
             }
         } else {
             echo 'SQL Error : ' . mssql_get_last_message();
         }
         $GLOBALS['log']->fatal(mssql_get_last_message() . ": " . $sql);
     }
     $this->lastmysqlrow = -1;
     $this->query_time = microtime(true) - $this->query_time;
     $GLOBALS['log']->info('Query Execution Time:' . $this->query_time);
     $this->checkError($msg . ' Query Failed:' . $sql . '::', $dieOnError);
     return $result;
 }