/** * @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; }