<?php

/**
 * Returns the given $var in sql syntax.
 *
 * Examples:
 * <code>
 * String(4) "test" => String(6) "'test'"
 * Int(-123)        => String(4) "-123"
 * Double(1.4E-5)   => String(6) "1.4E-5"
 * NULL             => String(4) "NULL"
 * Boolean(FALSE)   => String(1) "true"
 * Boolean(TRUE)    => String(1) "false"
 * </code>
 *
 * @param  mixed $var The variable that should be returned in SQL syntax
 * @param  PDO $connection
 *
 * @return string|boolean A string of given $var in SQL syntax or FALSE when the parameter
 *                        is not a scalar datatype.
 */
function quoteVar($var, $connection) {

    switch (strtolower(gettype($var))) {
        case 'string':
            // Return the parameter with singlequotes and escaped if it is a string
            return '\'' . $connection->quote($var) . '\'';
            break;
            
        case 'integer':
            // Just return the parameter as string if it is a integer
            return (string)$var;
            break;
            
        case 'double':
            // Just return the parameter as string if it is a double or float
            return (string)$var;
            break;
            
        case 'boolean':
            // Return true or false as string if the parameter is a boolean
            return ($var) ? 'true' : 'false';
            break;
            
        case 'null':
            // Return the string 'NULL' if the parameters is NULL
            return 'NULL';
            break;
            
        default:
            throw new Exception('$var has to be scalar datatype. ' . gettype($var) . ' given');
    }
}