SQL Syntax Highlighter

SQL Syntax Highlighter

This class has a single purpose, to create syntax highlighting for SQL queries. It works on a simple substitution basis and will return a syntax highlighted version of an SQL query.


class highlightSQL {

     * The colors array
private $colors;

     * The highlight words
private $words;

     * @constructor Set a few variables
     * @access public
     * @return void
public function __construct()

    * @set the array of words
    * @access private
    * @return void
private function setWords()
$words = array(



        array (
'DAY ',
'HEX ',
' IF ',
' IN ',
$this->words $words;

    * @set the array of colors to highlight
    * @access private
    * @return void
private function setColors()
/** the array of colors ***/
$this->colors = array('orange''blue''green''brown');

    * @Highlight an sql string
    * @access public 
    * @param string $sql The SQL string
    * @param string $string The string to replace
    * @param The highlight color
public function addStyle($sql$string$color)
str_ireplace($string'<span style="font-family: sans-serif; font-weight:bold; color:'.$color.';">'.$string.' </span>'$sql);

    public function 
$i 0;
$this->colors as $color)
$this->words[$i] as $word)
$sql $this->addStyle$sql$word$color);
'<div style="font:weight:bold; color:#ff3b0f;">'.$sql.'</div>';

/*** end of class ***/

Example Usage

/*** the SQL query to highlight ***/
$sql 'SELECT foo.foo_id, bar.bar_id FROM table JOIN bar USING(foo_id) WHERE foo_id=123 LIMIT 1';

/*** show the highlighted query ***/
$obj = new highlightSQL;
$sql $obj->highlight($sql);



SELECT foo.foo_id, bar.bar_id FROM table JOIN bar USING (foo_id) WHERE foo_id=123 LIMIT 1