public static function query()
 {
     //Initializes debug
     if (DEBUG) {
         $log = new Log("SQL::query");
         $log->setParameters("table_info");
     }
     //Ensures at least SQL statement
     $func_arg_count = func_num_args();
     if ($func_arg_count < 1) {
         if (DEBUG) {
             $log->add("No arguments provided");
             $log->display();
             $log = null;
         }
         return 0;
     }
     //Prep sql statement
     $sql = func_get_arg(0);
     if (!is_string($sql)) {
         if (DEBUG) {
             $log->add("Invalid sql statement provided");
             $log->display();
             $log = null;
         }
         return 0;
     }
     $result = 0;
     //Checks for valid input
     if ($func_arg_count > 1) {
         //Input is expected
         //Secondary initialization of debug
         if (DEBUG) {
             $log->setArguments(func_get_arg(0));
             for ($i = 1; $i < func_num_args(); $i++) {
                 $log->setParameters("argument-" . $i);
                 $log->setArguments(func_get_arg($i));
             }
         }
         //Check if input is not in a proper array
         $arg = func_get_arg(1);
         if (!is_array($arg)) {
             $arg = array();
             for ($i = 1; $i < $func_arg_count; $i++) {
                 $arg_elem = func_get_arg($i);
                 //Check if input element is array
                 if (is_array($arg_elem)) {
                     if (DEBUG) {
                         $log->add("Invalid input type: array");
                         $log->display();
                         $log = null;
                     }
                     return 0;
                 }
                 $arg[] = $arg_elem;
             }
             if (DEBUG) {
                 $log->add("New array: array( " . implode(", ", $arg) . " )");
             }
         } else {
             for ($i = 0; $i < count($arg); $i++) {
                 //Check if input element is array
                 if (is_array($arg[$i])) {
                     if (DEBUG) {
                         $log->add("Invalid input type: array");
                         $log->display();
                         $log = null;
                     }
                     return 0;
                 }
             }
         }
         //Runs query
         $connection = new PDOConnection(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
         $result = $connection->query($sql, $arg);
         $connection->close();
     } else {
         //No input expected
         //Initialize debug
         if (DEBUG) {
             for ($i = 0; $i < func_num_args(); $i++) {
                 $log->setArguments(func_get_arg($i));
             }
         }
         //Runs query
         $connection = new PDOConnection(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
         $result = $connection->query($sql);
         $connection->close();
     }
     //Displays debug message
     if (DEBUG) {
         $log->display();
         $log = null;
     }
     return $result;
 }