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; }