Example #1
0
 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;
 }
Example #2
0
 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;
 }
Example #3
0
 public static function flush()
 {
     self::$last_result = array();
     self::$col_info = null;
     self::$last_query = null;
 }