public static function query($query, $QT = NULL) { if (!self::$link) { self::connect(); } // filter the query, if filters are available // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method $query = str_replace(iPHP_DB_PREFIX_TAG, iPHP_DB_PREFIX, $query); $query = str_replace('`', '', $query); // initialise return $return_val = 0; self::flush(); // Log how the function was called self::$func_call = __CLASS__ . "::query(\"{$query}\")"; // Keep track of the last query for debug.. self::$last_query = $query; // Perform the query via std pgsql_query function.. if (SAVEQUERIES) { self::timer_start(); } self::$result = pg_query(self::$link, $query); self::$num_queries++; if (SAVEQUERIES) { self::$queries[] = array($query, self::timer_stop()); } // If there is an error then take note of it.. if (self::$last_error = pg_result_error(self::$result)) { self::print_error(); return false; } $QH = strtoupper(substr($query, 0, strpos($query, ' '))); if (in_array($QH, array('INSERT', 'DELETE', 'UPDATE', 'REPLACE', 'SET', 'CREATE', 'DROP', 'ALTER'))) { $rows_affected = pg_affected_rows(self::$result); // Take note of the insert_id if (in_array($QH, array("INSERT", "REPLACE"))) { self::$insert_id = pg_last_oid(self::$result); } // Return number of rows affected $return_val = $rows_affected; } else { if ($QT == "field") { $i = 0; while ($i < pg_num_fields(self::$result)) { self::$col_info[$i] = pg_field_name(self::$result); $i++; } } else { $num_rows = 0; while ($row = pg_fetch_object(self::$result)) { self::$last_result[$num_rows] = $row; $num_rows++; } // Log number of rows the query returned self::$num_rows = $num_rows; // Return number of rows selected $return_val = $num_rows; } pg_free_result(self::$result); } return $return_val; }
public static function query($query, $QT = NULL) { if (!self::$link) { self::connect(); } // filter the query, if filters are available // NOTE: some queries are made before the plugins have been loaded, and thus cannot be filtered with this method $query = str_replace(iPHP_DB_PREFIX_TAG, iPHP_DB_PREFIX, $query); // initialise return $return_val = 0; self::flush(); // Log how the function was called self::$func_call = __CLASS__ . "::query(\"{$query}\")"; // Keep track of the last query for debug.. self::$last_query = $query; // Perform the query via std mysql_query function.. if (SAVEQUERIES) { self::timer_start(); } self::$result = self::$link->query($query); // If there is an error then take note of it.. self::$last_error = self::$link->errorInfo(); if (self::$last_error[0] != '00000') { self::print_error(); return false; } self::$result->setFetchMode(PDO::FETCH_OBJ); self::$num_queries++; if (SAVEQUERIES) { self::$queries[] = array($query, self::timer_stop()); } $QH = strtoupper(substr($query, 0, strpos($query, ' '))); if (in_array($QH, array("INSERT", "DELETE", "UPDATE", "REPLACE"))) { $rows_affected = self::$result->rowCount(); // Take note of the insert_id if (in_array($QH, array("INSERT", "REPLACE"))) { self::$insert_id = self::$link->lastInsertId(); } // Return number of rows affected $return_val = $rows_affected; } else { if ($QT == "field") { self::$col_info[] = self::$result->getColumnMeta(); } else { $num_rows = 0; foreach (self::$result as $row) { self::$last_result[$num_rows] = $row; $num_rows++; } // Log number of rows the query returned self::$num_rows = $num_rows; // Return number of rows selected $return_val = $num_rows; } //@mysql_free_result(self::$result); } return $return_val; }
public static function flush() { self::$last_result = array(); self::$col_info = null; self::$last_query = null; }